Mutt не отправляет почту при указании сервера smtp

Mutt не отправляет почту при указании сервера smtp

Я пытаюсь использовать его muttв качестве своего почтового клиента, и он отлично работает для моего аккаунта gmail. Но когда я использую свой рабочий адрес электронной почты, он не отправляет письма. Он не выдает никаких ошибок, он просто не отправляет их. Строка в моем .muttrcфайле, которая вызывает эту проблему, это:

установить smtp_url = "smtp://mail.my_work_email_server.com:587"

Поведение не меняется ни при добавлении smtp_pass, ни при изменении имени почтового сервера (т. е. при использовании «вымышленного» адреса сервера).

решение1

У меня было то же самое, и вот что мне помогло.

set ssl_starttls=yes
set ssl_force_tls=yes

set imap_user = "[email protected]"
set imap_pass = "!HASHEDPASSWORD!"
set folder = imap://mail.example.com/
set spoolfile = imap://mail.example.com/INBOX

# SMTP user auth
# # fill in the right user and pass based on your setup
# # protocols: smtp for TLS (25/587), smtps for SSL (465)
set smtp_url = "smtp://[email protected]:587"
set smtp_pass = "$imap_pass"

# Where to save copies of outgoing mail
set record = '+Sent'

У меня это НЕ сработало из-за порядка, в котором были указаны элементы в файле конфигурации, и определения «установить запись» для папки, которая была ссылкой на несуществующую папку.

При ответе «нет» на вопрос о создании папки она зависала и трафик к SMTP-серверу не наблюдался.

PS: проверьте исходные файлы конфигурации, они могут указывать конфликтующие настройки и/или в неправильном порядке.

НТН

решение2

Можете ли вы успешно отправлять почту через SMTP с помощью другого почтового клиента на этой машине? Можете ли вы подключиться по telnet к вашему SMTP-серверу и установить соединение? Используете ли вы STARTTLS?

В mutt вы используете протокол smtpsдля обозначения соединения, которое изначально защищено с помощью TLS/SSL. Если ваш почтовый сервер ожидает этого (а многие в наши дни так делают), это может быть вашей проблемой.

Однако если ваш почтовый сервер ожидает использования STARTTLS, то вы используете обычный smtp://протокол smtp_urlи убедитесь, что set ssl_starttls=yes.

Вот пример telnetсеанса, показывающий почтовый сервер, использующий STARTTLS:

$ telnet smtp.example.com 587
Trying 127.0.0.1...
Connected to smtp.example.com.
Escape character is '^]'.
220 smtp.example.com ESMTP Postfix (Debian/GNU)
EHLO test
250-
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

решение3

Я потратил целый день, разбираясь с этим и настраивая МНОЖЕСТВО комбинаций между различными конфигурациями SSL/TLS и портов, но безуспешно, пока сегодня я, наконец, не попробовал это конкретно:

set ssl_starttls = no

Похоже, что поведение Mutt по умолчанию — попытаться использовать STARTTLS, так что вам нужно специально указать емуНЕ

Никакой другой настройки не потребовалось, кроме очевидной smtp_urlи smtp_pass. Теперь я могу отлично отправлять почту с помощью этого.muttrc

set ssl_starttls = no
set smtp_url = "smtp://[email protected]@mail.example.com:587/"
set smtp_pass = "password"

Это сработало сНе рекомендуетсяконфигурации SSL от моего провайдера электронной почты. Я все еще не могу использовать рекомендуемую конфигурацию, используя порт 465.

Вот все настройки, которые я изменил и которые влияют на отправку почты, если кто-то еще хочет попробовать:

set ssl_starttls = no    # apparently yes is default.
set ssl_force_tls = yes
set smtp_authenticators = "login"

set smtp_url = "smtp[s]://..."
set certificate_file = "~/.mutt/certificates"    # some recommend creating the file first: mkdir ~/.mutt && touch ~/.mutt/certificates

set ssl_verify_host = no
set ssl_verify_dates = no

решение4

Я понимаю, что это старая тема, но вчера я потратил два часа, пытаясь понять, почему вышеупомянутые конфигурации у меня не сработали, и хочу поделиться решением, чтобы сэкономить время других людей.

Проблема заключалась в том, что мне нужно было хотя бы один раз принять сертификат с SMTP-сервера Google, а для этого требовалось запустить Mutt без перенаправления ввода, в противном случае Mutt не мог бы предложить вам принять сертификат.

Кстати, вам следует выбрать (a) для всегда, чтобы сертификат сохранялся в .mutt/certificates. Если вы выберете (o) для один раз, он будет использовать предоставленный сертификат, но не сохранит его в  .mutt/certificates.

Поэтому запустите Mutt без перенаправления ввода (сюда входит и перенаправление на стандартный ввод), а затем примите предложенный сертификат.аlways. После этого, в следующий раз, когда вы запустите Mutt, он должен просто работать, потому что он использует сохраненный сертификат.

Связанный контент