首页 > 代码库 > Linux 通过smtp 发送邮件

Linux 通过smtp 发送邮件

最近在项目上使用邮件服务,使用自带的mail服务是可以发送邮件,但是在测试后发现发送的地址不是常规的邮件。本来想偷懒使用自带的sendmail,但是老被屏蔽,所以只好使用第三方授权来发送邮件,以下是我ubuntu12上操作

  1. 基本环境

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 发送邮件