Frage

Ich bin mit Symfony + Swiftmailer und erhalte die folgenden Störung von Swiftmailer:

500 | Internal Server Error | Swift_TransportException
Expected response code 220 but got code "", with message ""

und kann nicht herausfinden, warum. Ich verwende hMailServer auf meinem lokalen Rechner und habe meinen Setup factories.yml Datei (wie ich bin mit Symfony) wie folgt:

  mailer:
    class: sfMailer
    param:
      logging: %SF_LOGGING_ENABLED%
      charset: %SF_CHARSET%
      delivery_strategy: realtime
      transport:
        class: Swift_SmtpTransport
        param:
          host: splodge.loc
          port: 25
          encryption: ~
          username:   ~
          password:   ~

Ich bin mit dem folgenden Code an:

$message = $this->getMailer()->compose(
    'noreply@splodge.loc',
    'info@splodge.loc',
    'Reset Password', 
    'Message'
);
$result = $this->getMailer()->send($message);

Hat jemand ein Problem wie dieses hatte vor?

Ich habe das manchmal gefunden, und sehr zufällig, das Senden durchläuft, aber jede andere Zeit, erhalte ich die oben genannte Fehlermeldung. So erfrischend ständig die Seite, die die E-Mail sendet, nicht unvorhersehbar, und wie der Code funktioniert manchmal, es ist irgendwie schwer, herauszufinden, was falsch ist.

Jede Hilfe wird sehr geschätzt!


Weitere Untersuchungen haben gezeigt, dass der SMTP-Server sendet [220 localhost ESMTP], aber nach einem Blick auf hMailServer Protokolle nehmen, entdeckte ich die folgenden:

"TCPIP" 5232    "2010-06-16 11:40:54.043"   "TCPConnection - Posting AcceptEx on 0.0.0.0:25"
"DEBUG" 5232    "2010-06-16 11:40:54.043"   "Creating session 51"
"SMTPD" 5232    51  "2010-06-16 11:40:54.043"   "127.0.0.1" "SENT: 220 localhost ESMTP"
"DEBUG" 5296    "2010-06-16 11:40:54.199"   "The read operation failed. Bytes transferred: 0 Remote IP: 127.0.0.1, Session: 51, Code: 10054, Message: An existing connection was forcibly closed by the remote host"
"DEBUG" 5296    "2010-06-16 11:40:54.199"   "Ending session 51"

Könnte es sein, dass Swiftmailer HELO ist / EHLOing zu früh, und dass dies einfach eine Zeitfrage? Kann ich die HELO Übertragung ein wenig verzögern?

Die guten Protokolle, wenn das Ding sieht tatsächlich sendet wie folgt:

"TCPIP" 5232    "2010-06-16 11:42:21.278"   "TCPConnection - Posting AcceptEx on 0.0.0.0:25"
"DEBUG" 5232    "2010-06-16 11:42:21.294"   "Creating session 54"
"SMTPD" 5232    54  "2010-06-16 11:42:21.294"   "127.0.0.1" "SENT: 220 localhost ESMTP"
"SMTPD" 5224    54  "2010-06-16 11:42:21.294"   "127.0.0.1" "RECEIVED: EHLO splodge.loc"

So muss es sein, mit der HELO / EHLO Anerkennung zu tun. Bitte beraten! :)

War es hilfreich?

Lösung 2

Managed diese Funktion zu erhalten, indem eine Schleife zu schaffen, dass Wiederholungen die E-Mail zu senden ...

$sendResult = false;
do
{
    try
    {
        $message = Swift_Message::newInstance()
            ->setFrom('noreply@splodge.loc', 'Mr.Postman')
            ->setTo($to)
            ->setSubject('Password reminder...')
            ->setBody($this->getPartial('resetPasswordEmail', array(
                'newPassword' => $newPassword)), 'text/html');
        $sendResult = $this->getMailer()->send($message);
    }
    catch(Exception $e){/*Do nothing*/}
}
while($sendResult !== 1);

Als nächstes werde ich einige Konfigurationseinstellungen hinzufügen, die Anzahl der Wiederholungen zu begrenzen.

Andere Tipps

Sounds wie eine SMTP-Ausgabe.

Was passiert, wenn Sie die folgenden Befehle in der Befehlszeile versuchen:

telnet splodge.loc 25

Können Sie verbinden? Ist die Antwort Zeilenanfang mit 220?

Wenn nicht, dann haben Sie ein Problem mit Ihrem SMTP-Server erhalten (oder vielleicht Firewall) Konfig.

Ich wollte nur auf diese hinzuzufügen. war für mich das Problem, wenn mein SMTP-Server Neustart, Dovecot up kam nicht zurück. sobald ich begann Dovecot, war alles in Ordnung. so dass am Ende war es ein smtp Problem also, wenn jemand dieses Problem hat, kann man so ziemlich sicher sein, es ist eine SMTP-Ausgabe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top