Я пытаюсь настроить msmtp
(в Ubuntu 12.04). Когда я пытаюсь отправить электронное письмо, оно «зависает» (ну, ctrl-c прерывает его, так что это не совсем зависание, но, похоже, ничего не делает). Вот мой .msmtprc
(здесь и далее пароль и все адреса верны, конечно):
account wmi
host smtp.wmi.amu.edu.pl
port 465
auth on
user mbork
password ***
from from@address
account default : wmi
Когда я вызываю cat mailtest.txt | msmtp -v to@address
, я получаю это:
ignoring system configuration file /etc/msmtprc: Nie ma takiego pliku ani katalogu
loaded user configuration file /home/marcin/.msmtprc
falling back to default account
using account default from /home/marcin/.msmtprc
host = smtp.wmi.amu.edu.pl
port = 465
timeout = off
protocol = smtp
domain = localhost
auth = choose
user = mbork
password = *
passwordeval = (not set)
ntlmdomain = (not set)
tls = off
tls_starttls = on
tls_trust_file = (not set)
tls_crl_file = (not set)
tls_fingerprint = (not set)
tls_key_file = (not set)
tls_cert_file = (not set)
tls_certcheck = on
tls_force_sslv3 = off
tls_min_dh_prime_bits = (not set)
tls_priorities = (not set)
auto_from = off
maildomain = (not set)
from = from@address
dsn_notify = (not set)
dsn_return = (not set)
keepbcc = off
logfile = (not set)
syslog = (not set)
aliases = (not set)
reading recipients from the command line
и ничего не происходит.
(Файл mailtest.txt
выглядит следующим образом:
To: to@address
From: from@address
Subject: A test
msmtp testing
)
Что может вызвать эту проблему?
ОК, проблема решена. msmtp
версия 1.4.26, кажется, сломана; после установки v1.4.30 он начал работать.
Осторожно! «чтение получателей из командной строки» - это последнее информационное сообщение из msmtp перед попыткой подключения к серверу. Если он зависает в этот момент, это означает, что он не может подключиться. Ничего общего с командной строкой, так что не делай то, что я сделал, и продолжай погоню за дикими гусями. Вы можете попробовать подключиться через telnet (например, telnet mail.example.com 587), чтобы узнать, отвечает ли сервер. Если нет, дважды проверьте его URL и порт. Или, в моем случае, fail2ban на сервере забанил меня после нескольких неудачных попыток входа в систему из-за неправильного имени пользователя. Простой ответ в этом случае - подождать несколько часов до истечения срока запрета.
Извините, что вернул этот старый поток к жизни, но видя, что 12.04 в настоящее время все еще является LTS, он все еще может быть полезен для некоторых.
Сегодня я настроил msmtp и столкнулся с той же проблемой, что и описанный OP; команда висит на "чтение получателей из командной строки". Я решил проблему, добавив параметр «порт» и порт, используемый моим провайдером. Если параметр порта не установлен, используется значение по умолчанию (25), и мой провайдер использует другой порт при использовании STARTTLS.
Я вижу, что в OP уже настроен параметр порта, поэтому в данном конкретном случае это может не являться проблемой. Однако в моей конфигурации электронное письмо было успешно отправлено (и получено), поэтому я не верю, что msmtp 1.4.26 не работает.
В моем случае была вызвана эта проблема, потому что msmtp позволяет StartTLS по умолчанию. Когда StartTLS позволят, msmtp будет соединяться с сервером и ждать, чтобы сервер послал данные (сообщение приветствия SMTP). Если сервер не будет поддерживать StartTLS и будет ожидать, что соединение будет зашифровано с SSL с начала, то это не пошлет данные и будет ждать клиента, чтобы настроить соединение SSL.
, Таким образом, Вы можете попытаться установить tls_starttls off
в defaults
раздел ~/.msmtprc
. Также проверьте, что порт правилен.
(Чтобы устранить эту проблему, я проверил с strace msmtp
, что то, когда msmtp вешал ее, соединялось с правильным сервером на правильном порте и ждало, чтобы получить данные, тогда как использование openssl s_client
на том же сервере и порте, казалось, работало.)