![如何从 OpenWrt 路由器发送邮件](https://linux22.com/image/536128/%E5%A6%82%E4%BD%95%E4%BB%8E%20OpenWrt%20%E8%B7%AF%E7%94%B1%E5%99%A8%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6.png)
我正在使用 OpenWrt 10.03,需要通过电子邮件发送路由器的“报告”。我已经安装了 sendmail:
# opkg install mini-sendmail
然后我使用了我的 ISP 的 smtp 服务器:
# echo -e "From: [email protected]\nSubject: SUBJECT\nReply-to: [email protected]\n\nBODYHERE" \
> | mini_sendmail -sMYISPSSMTPSERVER [email protected]
mini_sendmail: unexpected response 550 to RCPT TO command
问题:
我怎么知道我的 ISP 阻止了端口 25?
# telnet MYISPSSMTPSERVER 25 220 MYISPSSMTPSERVER ESMTP ready quit 221 MYISPSSMTPSERVER closing connection Connection closed by foreign host
那么它没有被阻塞吗?
如果端口 25 没有被阻止,那么我该如何检查?我的 ISP 需要“电子邮件用户”吗?
- 如果我无法使用电子邮件,那么我必须注册一个免费的电子邮件地址 [gmail?],并了解如何在 OpenWRT 中发送电子邮件 [需要用户名和密码] 唯一的问题是,我不想在路由器上存储密码。
答案1
我知道这已经过时了,但这是在搜索“openwrt smtp”时出现的链接之一。
请访问此链接-
https://forum.openwrt.org/viewtopic.php?id=18669
为了防止链接腐烂问题..
首先安装。
# opkg install msmtp
然后创建配置文件。
# cat /etc/msmtprc
account default
host smtp.gmail.com
port 587
auth on
user [email protected]
password password
auto_from off
from [email protected]
tls on
tls_starttls on
tls_certcheck off
logfile
syslog LOG_MAIL
要发送电子邮件,请使用通常的 sendmail 方法。
答案2
解决方案:我安装了ssmtp + 使用ssl smtp注册了一个免费的电子邮件地址,如下所示:
# opkg install ssmtp
$ cat /etc/ssmtp/ssmtp.conf
[email protected]
mailhub=SMTP.EXAMPLE.COM:465
rewriteDomain=EXAMPLE.COM
hostname=EXAMPLE.COM
FromLineOverride=YES
UseTLS=YES
AuthUser=MYEMAIL
AuthPass=PASSWORDHERE
$ echo -e "From: [email protected]\nSubject: SUBJECT\nReply-to: [email protected]\n\nBODYHERE" \
> | ssmtp -vvv [email protected]
答案3
您能将路由器排除在外,只通过 telnet 发送电子邮件吗?ISP 通常会完全阻止出站 SMTP (tcp/25),同时允许连接到他们的邮件服务器,您可以将该服务器用作智能主机(可能需要身份验证)来为您中继邮件。
答案4
通常,消费者互联网服务提供商会阻止除他们自己的 SMTP 服务器之外的所有 SMTP 服务器的 TCP/25。因此,能够从路由器远程登录到该服务器是完全正常的。
您的 ISP 可能要求在通过 SMTP 发送之前进行身份验证,并且我不认为 mini_sendmail 支持 SMTP AUTH。您可以查看 ssmtp opkg 而不是(或除了)mini_sendmail: http://linux.die.net/man/5/ssmtp.conf