• 02-01-2023, 14:06:04
    #1
    İş yerinde kullanmak üzere kendime müşteri bilgileri yapılan işlerin takibi vs gibi işler için bi script yazdım fakat Google 3. şahışları engelleyene kadar yapılan işleri PHPMailer ile gönderiyordum daha sonrasında yahoo yada yandex ile göndermeyi denediğimde kodlarda hiç bi değişiklik yapmadığım sadece onların smtp bilgilerini girdiğim halde mailleri gönderemiyorum aşağıdaki hatayı veriyor. Bunun bir çözümü var mıdır.
    Kullandığım Local server : AppServ
    Alıntı
    The following From address failed: xxx@yahoo.com : Called Mail() without being connected
    $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPAuth = true;
        $mail->Host = 'smtp.mail.yahoo.com';
        $mail->Port = 465;
        $mail->Username = 'xxx@yahoo.com';
        $mail->Password = 'xxx';
        $mail->SetFrom($mail->Username, 'xxx');
        $mail->AddAddress("$eposta", "$musteri_i_s");
        $mail->CharSet = 'UTF-8';
        $mail->Subject = 'Fiyat Teklifi';
        $content = 'Sayın '.$musteri_i_s.' teklif fişiniz ektedir. Bizi tercih ettiğiniz için teşekkür ederiz.';
        $mail->MsgHTML($content);
        $dosya = "temp/teklif-$emir_id.pdf";
        $mail->AddAttachment( $dosya , "teklif-$emir_id.pdf" );
        if($mail->Send()) {
            echo 'Teklif fişi -> '.$eposta.' adresine gönderilmiştir.</br>
            <a href="index.php?do=emir&id1='.$emir_id.'">İş emrine dön</a>
            ';
        } else {
            // bir sorun var, sorunu ekrana bastıralım
            echo $mail->ErrorInfo.'</br>
            Lütfen geçerli bir e-posta adresi giriniz !</br>
            <a href="index.php?do=emir&id1='.$emir_id.'">İş emrine dön</a>';
        }
        exit();
  • 02-01-2023, 18:40:46
    #2
    Bu hatayı almanız, PHPMailer sınıfınızın mail() metodunu çağırırken bir bağlantı kurulmadığı anlamına gelebilir. Bu, SMTP sunucusu ile bağlantı kurulamaması veya geçersiz SMTP bilgileri kullanılması nedeniyle olabilir.

    PHPMailer sınıfını kullanırken, öncelikle IsSMTP() metodunu çağırarak SMTP üzerinden e-posta göndereceğinizi belirtmelisiniz. Daha sonra SMTPAuth metodunu true olarak ayarlayarak SMTP kimlik doğrulamasını etkinleştirin ve Host ve Port metodlarını kullanarak SMTP sunucusunun adresini ve bağlantı port numarasını belirtin. Son olarak, Username ve Password metodlarını kullanarak SMTP kimlik doğrulaması için kullanılacak e-posta adresinizi ve parolanızı belirtin.

    Örneğin:
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->Host = 'smtp.example.com';
    $mail->Port = 465;
    $mail->Username = 'user@example.com;
    $mail->Password = 'password';
    SMTP sunucusunun adresini ve port numarasını doğru olarak belirtmediyseniz veya e-posta adresiniz ve parolanız geçersiz ise, bu hatayı alabilirsiniz. Ayrıca, e-posta hesabınızın SMTP güvenliği etkinleştirilmiş olabilir ve bu nedenle kimlik doğrulaması gerektirir. Bu durumda, SMTP güvenliğini devre dışı bırakmanız gerekebilir.
  • 02-01-2023, 21:36:18
    #3
    $mail->SMTPDebug = 2;
    ekleyin neden hata verdiğini anlamış oluruz/olursunuz
  • 03-01-2023, 10:34:56
    #4
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    Bu hatayı almanız, PHPMailer sınıfınızın mail() metodunu çağırırken bir bağlantı kurulmadığı anlamına gelebilir. Bu, SMTP sunucusu ile bağlantı kurulamaması veya geçersiz SMTP bilgileri kullanılması nedeniyle olabilir.

    PHPMailer sınıfını kullanırken, öncelikle IsSMTP() metodunu çağırarak SMTP üzerinden e-posta göndereceğinizi belirtmelisiniz. Daha sonra SMTPAuth metodunu true olarak ayarlayarak SMTP kimlik doğrulamasını etkinleştirin ve Host ve Port metodlarını kullanarak SMTP sunucusunun adresini ve bağlantı port numarasını belirtin. Son olarak, Username ve Password metodlarını kullanarak SMTP kimlik doğrulaması için kullanılacak e-posta adresinizi ve parolanızı belirtin.

    Örneğin:
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->Host = 'smtp.example.com';
    $mail->Port = 465;
    $mail->Username = 'user@example.com;
    $mail->Password = 'password';
    SMTP sunucusunun adresini ve port numarasını doğru olarak belirtmediyseniz veya e-posta adresiniz ve parolanız geçersiz ise, bu hatayı alabilirsiniz. Ayrıca, e-posta hesabınızın SMTP güvenliği etkinleştirilmiş olabilir ve bu nedenle kimlik doğrulaması gerektirir. Bu durumda, SMTP güvenliğini devre dışı bırakmanız gerekebilir.
    trgino adlı üyeden alıntı: mesajı görüntüle
    $mail->SMTPDebug = 2;
    ekleyin neden hata verdiğini anlamış oluruz/olursunuz
    Yardımlarınız için teşekkürler
    $mail->SMTPDebug = 2;
    Yazıp baktığımda yahoo mailin şifresi doğru olmasına rağmen kabul etmiyordu daha sonra araştırdım ki yandexin smtp için ayarı ve ekstara uygulama şifresi tarzında olayı varmış o şekilde yandex ile çözdüm sorunu teşekkürler