Swift Mailer Hata

2 Cevap php

Bir mesaj göndermek için aşağıdaki kodu kullanarak Im:

try
{   
    require_once "lib/Swift.php";
    require_once "lib/Swift/Connection/SMTP.php";
    $smtp =& new Swift_Connection_SMTP("mail.somedomain.net", 587);
    $smtp->setUsername("username");
    $smtp->setpassword("password");
    $swift =& new Swift($smtp);

    //Create the sender from the details we've been given
    $sender =& new Swift_Address($email, $name);
    $message =& new Swift_Message("message title");

    $message->attach(new Swift_Message_Part("Hello"));

    //Try sending the email
    $sent = $swift->send($message, "$myEmail", $sender);
    //Disconnect from SMTP, we're done
    $swift->disconnect();

    if($sent)
    {
        print 'sent';

    }
    else 
    {
        print 'not sent';
    }

}

catch (Exception $e) 
{
    echo"$e";
}

Sorun benim yerel sunucuda (benim xampp sunucu) üzerinde iyi çalışıyor ama dosya gerçek sunucuya yüklendiği zaman çalışmıyor olmasıdır.

Bu hata atma:

'The SMTP connection failed to start [mail.somedomain.net:587]: fsockopen returned Error Number 110 and Error String 'Connection timed out''

Ben bu hatayı düzeltmek için ne yapmalıyım lütfen. Okuduğunuz için teşekkürler

2 Cevap

SMTP sunucusu etki geçerli olduğundan emin olun. Bir yanıt onaylamak için ping çalışıyor. Ayrıca herhangi bir düğmeye yavaş yanıt dönen olup olmadığını görmek için rota iz deneyebilirsiniz.

$smtp =& new Swift_Connection_SMTP("mail.somedomain.net", 587);

'587 'port numarası bağlanmak için olduğunu? Yerine normal bir bağlantı noktası 25 o çalışıyorsun herhangi bir neden? Port 587 (teslim) normal posta göndermek için yerel kullanıcılar için kullanılır. Eğer uzak web sunucusu üzerinde bu script kez çalıştırıyorsanız, artık "yerel", ve büyük olasılıkla kapalı güvenlik duvarı (veya posta sunucusunun dış arayüzleri o noktasına dinlemiyor).

Port 25 geçmeyi deneyin ve herhangi yardımcı olmadığını görmek.

güncelleme:

Reddetti Bağlantı zaman aşımına uğradı "bağlantı" daha iyidir. Bu ilk veri paketi bir yerde var ve aktif olarak reddedildi azından demektir. Zaman aşımına uğradı şeyler sadece sessizce yere tr-rota atıldım demektir.

php script kendisi, maksimum zamanla giderse max_execution_time sadece oyun haline gelirdi. Bu durumda ise komut kolayca sona olurdu, çünkü, bir swiftmailer hata alıyorum olmaz.

Lütfen webserver Sendmail'in çalışıyor? 'Localhost' için bağlantı ana değiştirmek ve görmek eğer yardımcı olur. Sadece bir e-posta göndermek istiyorsanız, o zaman çalışması gerekir. Bir uzak SMTP sunucusuna bağlanmak isteyebilirsiniz tek sebebi Gönderen için: başlıkları doğru ayarlanmış olması ve muhtemelen receving ucunda SPAM olarak işaretlenir değil.