Я использую Symfony + SwiftMailer и получить следующее сообщение об ошибке от SwiftMailer:Почему SwiftMailer выбрасывает «Внутреннюю ошибку сервера»?
500 | Internal Server Error | Swift_TransportException
Expected response code 220 but got code "", with message ""
и не могу понять, почему. Я использую hMailServer на моей локальной машине, и настроили мой файл factories.yml (как я использую Symfony) следующим образом:
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: ~
Я использую следующий код для отправки:
$message = $this->getMailer()->compose(
'[email protected]',
'[email protected]',
'Reset Password',
'Message'
);
$result = $this->getMailer()->send($message);
У кого-нибудь была такая проблема?
Я обнаружил, что иногда, и очень случайным образом, передача проходит, но каждый раз я получаю вышеуказанное сообщение об ошибке. Поэтому постоянное обновление страницы, которая отправляет почту, непредсказуемо, и, как иногда работает код, трудно понять, что не так.
Любая помощь будет высоко оценена!
Дальнейшее исследование показало, что сервер SMTP делает отправить [220 LOCALHOST ESMTP], но после того, посмотрите на журналы hMailServer, я обнаружил следующее:
"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"
Может быть, что SwiftMailer является HELO/EHLOing слишком рано, и что это просто вопрос времени? Можно ли немного задержать передачу HELO?
Хорошие журналы, когда вещь фактически посылает выглядит следующим образом:
"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"
Так что это должно быть связано с признанием HELO/EHLO. Пожалуйста, порекомендуйте! :)
Проблема, вероятно, связана с вашим хостом. Почему бы вам не попробовать gmail и посмотреть, попадаете ли вы в ту же проблему. – Dziamid