如何从我的本地电脑调用 vps 中的 postfix 来向我的雅虎帐户发送电子邮件?

如何从我的本地电脑调用 vps 中的 postfix 来向我的雅虎帐户发送电子邮件?

a :我的本地pc,localhost.localdomain
b是我的vps,里面安装了postfix
c是我的yahoo账户。

登录 b (我的 vps)。

echo "test"|mail -s "test" [email protected]

电子邮件可以发送至[email protected]

我的 postfix 上的所有配置。

postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
mydomain = domain.com
myhostname = mail.domain.com
myorigin = $mydomain
mynetworks = 127.0.0.0/8
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550

现在我想从 a(我的本地电脑)调用 b(我的 vps)上的 postfix 来向雅虎帐户发送电子邮件。msmtp
已安装在 b(我的本地电脑)上。

cat .msmtprc
account default
host domain.com
user root
from [email protected]
password xxxxxx
auth login
tls off
logfile .msmtp.log

发送电子邮件

echo "test" | mail  -s "test" [email protected]

这是我的本地电脑上的日志。

cat /var/log/mail.log
Oct 7 08:09:50 localhost postfix/pickup[23565]: D6FA3482226: uid=1000 from=<root>
Oct 7 08:09:50 localhost postfix/cleanup[25879]: D6FA3482226: message-id=<[email protected]>
Oct 7 08:09:50 localhost postfix/qmgr[4739]: D6FA3482226: from=<[email protected]>, size=359, nrcpt=1 (queue active)
Oct 7 08:09:55 localhost postfix/smtp[25881]: D6FA3482226: to=<[email protected]>, relay=mta5.am0.yahoodns.net[98.136.216.26]:25, delay=4.3, delays=0.08/0/2.5/1.8, dsn=2.0.0, status=sent (250 ok dirdel)
Oct 7 08:09:55 localhost postfix/cleanup[25879]: 38BC7482228: message-id=<[email protected]>
Oct 7 08:09:55 localhost postfix/bounce[26007]: D6FA3482226: sender delivery status notification: 38BC7482228
Oct 7 08:09:55 localhost postfix/qmgr[4739]: 38BC7482228: from=<>, size=1988, nrcpt=1 (queue active)
Oct 7 08:09:55 localhost postfix/qmgr[4739]: D6FA3482226: removed
Oct 7 08:09:55 localhost postfix/smtp[26008]: 38BC7482228: to=<[email protected]>, relay=none, delay=0.05, delays=0.03/0.01/0.01/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=localdomain.localdomain type=AAAA: Host not found)
Oct 7 08:09:55 localhost postfix/qmgr[4739]: 38BC7482228: removed

我可以通过 b(我的 vps)向 yahoo 帐户发送电子邮件,为什么不能通过调用 b(我的 vps)上的 postfix 从我的本地电脑向 yahoo 帐户发送电子邮件?

如何修复?

答案1

a :my local pc, localhost.localdomain

这就是问题所在。雅虎不接受来自[电子邮件保护]. 简而言之,即使在垃圾邮件中你也找不到它。如果发送主机是这样的,他们就会丢弃你的邮件。我过去就经历过这种情况。

答案2

dsn=5.4.4, status=bounced (Host or domain name not found.
Name service error for name=localdomain.localdomain type=AAAA: Host not found)

检查域的存在信封发件人是用于打击垃圾邮件的一种非常常见的方法。不仅仅是 Yahoo,每个合理的邮件配置都会这样做;只允许本地主机名进行本地投递。

使用@localhost.localdomain可能是由于误解您的本地计算机没有任何域,因此不允许使用任何域作为发件人地址。事实并非如此。欺骗您被允许使用的电子邮件地址根本不是欺骗 - 电子邮件的设计方式是每个地址在技术上都是欺骗的,只有更高级的方法(SPF,DKIM,DMARC)才能帮助判断使用是否合法。

如果您的 VPS 信任您的本地计算机(因为它是受信任的 IP 或连接已通过身份验证),并且 VPS 列在您的域的 SPF 记录中,则可以在两者中使用该域信封发件人以及From:来自本地机器的标头地址。

相关内容