我正在尝试配置msmtp (在Ubuntu12.04上)。当我试图发送一封电子邮件时,它会“挂起”(嗯,ctrl会中止它,所以它并不是真正的挂起,但它似乎什么也不做)。这是我的.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)
是什么导致了这个问题?
发布于 2019-11-23 11:33:27
在我的例子中,造成这个问题是因为msmtp默认启用了StartTLS。启用StartTLS后,msmtp将连接到服务器,并等待服务器发送数据( SMTP欢迎消息)。如果服务器不支持StartTLS,并且希望从一开始就使用SSL加密连接,那么它将不会发送数据并等待客户端设置SSL连接。
因此,您可以尝试在tls_starttls off的defaults部分设置~/.msmtprc。还检查端口是否正确。
(要解决这个问题,我用strace msmtp验证了,当msmtp挂起时,它正在连接到正确端口上的正确服务器,等待接收数据,而在同一服务器和端口上使用openssl s_client似乎有效。)
发布于 2018-10-16 13:17:05
当心!“从命令行读取收件人”是msmtp在尝试连接到服务器之前发出的最后一条信息消息。如果它挂在那个位置,就意味着它无法连接。与命令行无关,所以不要做我所做的事,去追逐大雁。您可以尝试与telnet (例如telnet mail.example.com 587)连接,以查看服务器是否响应。如果没有,请再次检查其网址和端口。或者,在我的例子中,由于用户名错误,服务器上的fail2ban在一些登录尝试失败后禁止了我。在这种情况下,简单的答案是等待几个小时的禁令到期。
发布于 2013-01-04 00:40:52
好了问题解决了。msmtp版本1.4.26似乎坏了;安装1.4.30之后,它就开始工作了。
https://askubuntu.com/questions/233576
复制相似问题