目的:每天下载数据,然后再转发,实在是一个很繁琐的事情,尤其是通过堡垒机后,sftp经常性联接不上,需要多次反复尝试,这严重不符合我的强迫症,于是就想着把邮件自动发过去。
目标机是centos,但由于过通过多个安全设备,于是先在ubuntu虚拟机上做个尝试。
第一步,需要安装bsd-mailx
root@rdtest-VirtualBox:/etc# apt install bsd-mailx
将会同时安装下列软件:
postfix
第二步,配置/etc/s-nail.rc
缺省文件很长,不用管,直接在最后增加这么5行。注意
# s-it-mode
set from="ming_nv@163.com" #用来发送邮件的邮箱
set smtp="smtp.163.com"
set smtp-auth-user="ming_nv@163.com"
set smtp-auth-password="XECMZMXMMCHUOCEX" #邮箱授权码
set smtp-auth=login
看着使用设备 似乎没有什么用。不过在我这里,是登录用户。
第三步,发送测试
root@test-VirtualBox:/etc# echo "this is test" | s-nail -s "test email" 12234567@qq.com
s-nail: smtp-server: 535 Error: authentication failed
/root/dead.letter 10/239
... message not sent
root@test-VirtualBox:/etc# echo "this is test" | s-nail -s "test email" 12234567@qq.com
s-nail: smtp-server: 535 Error: authentication failed
/root/dead.letter 10/239
... message not sent
错误原因是未使用授权码,而是直接使用的,邮箱密码。
第四步,发送成功(结束)
root@test-VirtualBox:/etc# echo "this is test" | s-nail -s "test email" rdhgm@qq.com
root@test-VirtualBox:/etc#
----进一步工作----
第一是带附件(-a /path/filename 即可,真简洁)
第二是需要配置安全过滤机制。
POP3/SMTP IP地址与端口(使用tcpdump抓包确认,只用了25端口)
第三是在Centos下安装bsd-mailx,没有网。
163邮箱(126类似163,参照即可):
接收邮件服务器: pop.163.com
接收端口: 110或995(使用ssl时)
接收邮件服务器: imap.163.com
接收端口: 143或993(使用ssl时)
发送邮件服务器: smtp.163.com
发送端口: 25或465/994(使用ssl时)
服务器名称 | 服务器地址 | SSL协议商品号 | 非SSL协议商品号 |
IMAP | imap.163.com | 993 | 143 |
SMTP | smtp.163.com | 465/994 | 25 |
POP3 | pop.163.com | 995 | 110 |