0%

如何在ubuntu上使用sendemail发送邮件

讨论如何在ubuntu上,使用sendemail连接远程smtp服务器发送邮件。

如何在Ubuntu 16.04上安装配置邮件发送服务器一文中,我尝试了配置ubuntu作为电子邮件发送服务器。在使用中,发现这种发送方式很不稳定,我推测应该是发送服务器域名解析的问题。

可能的原因是,邮件发送至目标邮件服务器后,目标服务器判断发件人邮件地址与实际源邮件服务器ip地址不匹配,所以丢弃了。今天我在ubuntu上试用sendemail在终端发送邮件,非常方便好用。

前提

你应该有一个邮箱地址,这个邮箱可以使用smtp端口发信。因为在终端发邮件时的命令行中,要显式输入登陆smtp服务器的用户名和密码,安全性存在一定问题,所以建议你申请一个免费邮件系统。我使用的yahoo的邮件。

安装

1
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail

使用

使用方法:

1
sendemail -f ADDRESS [options]

参数详解:
1
2
3
4
5
6
7
8
9
10
11
-f ADDRESS          # 发件人地址,注意此地址应该是你真实地址
-t ADDRESS # 收件人地址
-u SUBJECT # 主题
-m MESSAGE # 邮件正文
-s SERVER[:PORT] # SMTP服务器地址及端口
-a FILE [FILE ...] # 附件
-cc ADDRESS [ADDR ...] # 抄送地址
-bcc ADDRESS [ADDR ...] # 暗抄送地址
-xu USERNAME # SMTP服务器用户名
-xp PASSWORD # SMTP服务器密码
-o # 其它选项

示例

如我使用yahoo邮箱作为邮件发送服务器,要把sendemail命令的使用方法作为附件发到我的信箱中:

1
2
man sendemail > sendemail.usage.txt
sendemail -f zhaohufan@yahoo.com.hk -t fanzhh@gmail.com -u "sendemail使用说明" -m "sendemail使用说明详解。" -s smtp.mail.yahoo.com -o tls=yes -xu zhaohufan@yahoo.com.hk -xp 密码 -a sendemail.usage.txt

注意:-o tls=yes选项意为服务器需要SSL验证。