Linux 通过smtp 发送邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 通过smtp 发送邮件相关的知识,希望对你有一定的参考价值。

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

  1. 基本环境

[email protected]:/home/lt5# cat /etc/issue
Ubuntu 14.04.5 LTS \n \l

[email protected]:/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

[email protected]:/home/lt5# apt-get install heirloom-mailx


3. 修改配置文件/etc/nail.rc 

[email protected]:/home/lt5# tail -7 /etc/nail.rc 
# added by summer at 2017-01-21
set [email protected]           #要换成你的163邮箱
set smtp=smtp.163.com
set [email protected] #换成你的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.发送邮件测试

[email protected]:/home/lt5# mailx -s ‘test a mail‘ [email protected] </etc/hosts

解释说明

1. -s 就是后面接邮件的主题

2. [email protected] 就是要收邮件的邮件地址,我已经隐藏了,只要加上你需要的eamil即可

   要的话发送多人,中间加逗号即可

3. < /etc/hosts就是你要发送的邮件内容,也就是接受者邮件的正文

如下接受者收到的邮件内容

技术分享


以上是关于Linux 通过smtp 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

设置Linux使用SMTP服务发送邮件

java在linux下调用smtp协议发送邮件

通过 SMTP 发送邮件?

使用 SMTP 在 Linux 中使用 C 语言发送电子邮件

Linux系统发邮件

Oracle PLSQL通过SMTP发送E-MAIL邮件代码