# Swiftmailer Configuration swiftmailer: transport: smtp host: 10.8.100.1 port: 25 username: user password: pass auth_mode: ~ encryption: ~ spool: { type: memory }
Когда я пытаюсь отправить сообщение через $this->get('mailer')->send($message);
Я получаю следующую ошибку:
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Failed to authenticate on SMTP server with username "user" using 0 possible authenticators' in /..path../vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php:184 Stack trace: #0
Я попытался auth_mode
параметр auth_mode
на все возможные значения plain, login, cram-md5, or null
– все равно такое же сообщение об ошибке.
Затем мне захотелось подключиться к SMTP-серверу, чтобы вручную проверить, могу ли я авторизоваться (хотя, я уверен, что верные учетные данные на 100%).
telnet 10.8.100.1 25
Trying 10.8.100.1... Connected to 10.8.100.1. Escape character is '^]'. 220 EXC.acme.local Microsoft ESMTP MAIL Service ready at Wed, 19 Mar 2014 10:34:00 +0100
EHLO EXC.acme.local
250-EXC.acme.local Hello [10.8.100.1] 250-SIZE 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-STARTTLS 250-X-ANONYMOUSTLS 250-AUTH NTLM 250-X-EXPS GSSAPI NTLM 250-8BITMIME 250-BINARYMIME 250-CHUNKING 250-XEXCH50 250 XRDST
о250-EXC.acme.local Hello [10.8.100.1] 250-SIZE 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-STARTTLS 250-X-ANONYMOUSTLS 250-AUTH NTLM 250-X-EXPS GSSAPI NTLM 250-8BITMIME 250-BINARYMIME 250-CHUNKING 250-XEXCH50 250 XRDST
Я не эксперт почтового сервера, но я ожидал, что AUTH LOGIN там … похоже, что сервер (над которым я не контролирую) имеет другой метод проверки подлинности (который не поддерживается пакетом Swiftmailer?), И это может быть причина проблемы …
Правильно ли мои подозрения? Или есть способ настроить пакет Swiftmailer для правильной аутентификации с помощью AUTH NTLM?
Кажется, что Mail Server отказывается от вашего соединения (например, google, если вы пытаетесь подключиться к своей учетной записи gmail, если есть, и swiftmailer, вы получите ту же проблему)
Сказал, что, почему бы вам не попробовать Swift_MailTransport
вместо Swift_SmtpTransport
(он использует метод, Swift_MailTransport
на mail
который немного отличается от smtp
)
Итак, проблема не в конфигурации symfony2. Проблема заключалась в следующем:
Это также причина, по которой telnet EXC.acme.local 25
не работал, но telnet 10.8.100.1 25
работал.
Итак, когда я попытался подключиться к telnet, а затем EHLO с моей dev-машины .. получил 250-AUTH NTLM
, но когда я SSH'ed к машине prod (которая находится внутри домена / группы) и telnet оттуда:
telnet EXC.acme.local 25
сделал работу EHLO EXC.acme.local
возвращен AUTH LOGIN Как только я узнал об этом, я просто загрузил свои изменения в prod-машину и начал тестировать конфигурацию оттуда (с swiftmailer.transport: smtp
), и это сработало!