Я пытаюсь использовать его 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, он должен просто работать, потому что он использует сохраненный сертификат.