首页 > 代码库 > Linux 通过smtp 发送邮件
Linux 通过smtp 发送邮件
最近在项目上使用邮件服务,使用自带的mail服务是可以发送邮件,但是在测试后发现发送的地址不是常规的邮件。本来想偷懒使用自带的sendmail,但是老被屏蔽,所以只好使用第三方授权来发送邮件,以下是我ubuntu12上操作
基本环境
root@lt5:/home/lt5# cat /etc/issue Ubuntu 14.04.5 LTS \n \l root@lt5:/home/lt5# uname -a Linux lt5 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
2. 安装软件 heirloom-mailx
root@lt5:/home/lt5# apt-get install heirloom-mailx
3. 修改配置文件/etc/nail.rc
root@lt5:/home/lt5# tail -7 /etc/nail.rc # added by summer at 2017-01-21 set from=nanjing@163.com #要换成你的163邮箱 set smtp=smtp.163.com set smtp-auth-user=nanjing@163.com #换成你的163邮箱 set smtp-auth-password=sdxdsxds #换成你的163邮箱对应的授权码 set smtp-auth-login #end
配置文件说明解释
from 是发送的邮件地址
smtp 是发生的外部smtp服务器的地址
smtp-auth-user 是外部smtp服务器认证的用户名
smtp-auth-password 是外部smtp服务器认证的用户密码
smtp-auth 是邮件认证的方式
注意:有关163的授权码的事情自行百度,或者如下操作即可。
我使用的外部 SMTP 邮箱是网易 163 邮箱,延时相对 qq 会比较小
登录 163 邮箱,在 163 邮箱设置-->常规设置-->POP3/SMTP/IMAP 开启以上三个服务并选择收取全部邮件,在 163 邮箱设置-->常规设置-->客户端密码授权记下客户端授权密码(一串字符,很重要)
5.发送邮件测试
root@lt5:/home/lt5# mailx -s ‘test a mail‘ xxxxx@qq.com </etc/hosts
解释说明
1. -s 就是后面接邮件的主题
2. xxx@qq.com 就是要收邮件的邮件地址,我已经隐藏了,只要加上你需要的eamil即可
要的话发送多人,中间加逗号即可
3. < /etc/hosts就是你要发送的邮件内容,也就是接受者邮件的正文
如下接受者收到的邮件内容
Linux 通过smtp 发送邮件