Ubuntu下调用外部邮箱SMTP服务器发送邮件

  • 来源:新网
  • 更新日期:2018-03-13

摘要:由于使用本地服务发送邮件会占用资源以及被系统过滤掉导致发送成功率不高,所以通常情况下选用外部SMTP服务器发送邮件。 在linux下配置外部SMTP服务器发送邮件的方法有很多,可以使用SendEmail、heirloom-mailx等来实现。下面写一下用heirloom-mailx来说实现邮件发送的教程。1.安装heirloom-mail 在命令行中输入“sudo apt-get install

由于使用本地服务发送邮件会占用资源以及被系统过滤掉导致发送成功率不高,所以通常情况下选用外部SMTP服务器发送邮件。
在linux下配置外部SMTP服务器发送邮件的方法有很多,可以使用SendEmail、heirloom-mailx等来实现。下面写一下用heirloom-mailx来说实现邮件发送的教程。

1.安装heirloom-mail
在命令行中输入“sudo apt-get install heirloom-mailx”指令,如下图:
这里写图片描述

2.修改/etc/nail.rc文件
在命令行中输入“vi /etc/nail.rc”,移动光标至文件末尾处,输入“i”进入插入模式,然后添加需要开放的SMTP服务器:
代码

set from=USER@126.com set smtp=smtp.126.com set smtp-auth-user=USER set smtp-auth-password=PASSWORD set smtp-auth=login

set from是发送的邮件地址
set smtp是发生的外部smtp服务器的地址
set smtp-auth-user是外部smtp服务器认证的用户名
set smtp-auth-password是外部smtp服务器认证的用户密码
set smtp-auth是邮件认证的方式

需要注意的是“mtp-auth-password外部smtp服务器认证的用户密码”为邮箱的授权码而不是邮箱密码,授权码的位置可以在自己的邮箱设置中查看,例如我的邮箱授权码查看位置:
这里写图片描述

我的文件设置为
这里写图片描述

设置完毕后,按ESC健退出插入模式并输入“:wq”退出。

3.测试
在命令行发送
echo “邮件内容” | heirloom-mailx -s “邮件标题” wangqingchuan92@126.com
例如我的:
这里写图片描述

也可以加参数v看到mail输出的详细信息:
echo “邮件内容” | heirloom-mailx -vs “邮件标题” wangqingchuan92@126.com
例如我的:
这里写图片描述

PS:若在smtp-auth-password中输入的是邮箱密码,则在邮件发送则失败并会出现如下图信息:
这里写图片描述