欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

mailx 使用ssl邮件发送配置 有大用 有大大用 有大大大用

mailx通过ssl方式发送邮件


下面的第一个例子有大用 有大大用 有大大用 再下面的例子可以不用看了


mailx使用ssl方式发送邮件

mailx在发送邮件时,可以选择25端口,也可以使用其它端口(这个取决于邮件服务商)。

在这里大家要了解 非ssl协议端口和ssl协议端口

163邮箱提供的端口如下:

现在基本上都采用ssl协议的方式
如:阿里云默认25端口被禁止,所以必须采用其它端口来进行邮件发送;QQ默认采用ssl协议。

所以必须要掌握ssl协议方式的邮件发送。

非SSL协议端口-mailx的配置

以163邮件为例:


set from="330145635@163.com" # 设置发送邮箱
set smtp=smtp.163.com  # 设置邮件服务器(注意端口)
set smtp-auth-user="330145635@163.com"  #设置邮件用户登录账号
set smtp-auth-password="zqtxbekwabqibjhf" #设置密码,注意这里的密码是客户端授权密码,非用户登录密码。
set smtp-auth=login #

SSL协议端口-mailx的配置

以QQ邮箱为例

set from="330XXXX35@qq.com"
set smtp=smtp.qq.com # 设置邮件服务器(注意端口)QQ邮箱这样写即可
set smtp-auth-user="330XXXX35@qq.com"  #设置邮件用户登录账号
set smtp-auth-password="zqtxbekwabqibjhf" 授权码
set smtp-auth=login
#set smtp-use-starttls=yes #QQ邮箱中,加上后,会报错,但是邮件可以正常发送
set ssl-verify=ignore #认证方式
set nss-config-dir=/root/.certs  #证书地址

证书的处理

使用SSl协议端口时,需要证书。默认情况下一般是没有证书的,所以需要首先进行证书的获取。

如果直接按照上述方式进行配置,发送测试邮件时,会报如下错误

证书的获取

可以手动直接生成证书

顺序执行如下命令即可生成证书:

mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs

生成证书时,根据邮件服务器的不同可以自己调整

为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱 SSL 证书存放目录 /root/.certs 里执行如下命令

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

到这里就设置好了,可以发送一封邮箱测试一下

echo date | mailx -s "data" 330145635@qq.com

发送邮件,注意增加 -v 参数,否则报错.

echo "email main content" | mail -v -s "theme" addressee

上面的有大用 有大大用 有大大用 下面的可以不用看了

来自 https://www.kancloud.cn/yuanrun/linux/734862

mailx 使用ssl邮件发送配置 2018-12-28

96 
迷藏_ 
 0.1 2018.12.28 12:38* 字数 47 阅读 190评论 0


先安装mailx
yum install mailx
编辑配置文件
vim /etc/mail.rc
追加以下内容

set from=example@qq.com
set smtp=smtps://smtp.qq.com:465                                              
set smtp-auth-user=example@qq.com
set smtp-auth-password=**************
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs
set from=example@qq.com发送邮箱
set smtp=smtps://smtp.qq.com:465发件服务器
set smtp-auth-user=example@qq.com发件用户名
set smtp-auth-password=**************邮箱密码或授权码
set smtp-auth=login连接方式,用login即可
set ssl-verify=ignore启用ssl
set nss-config-dir=/root/.certs证书位置

证书配置

mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i ~/.certs/qq.crt
certutil -L -d /root/.certs

测试发送邮件
echo "邮件正文" | mail -s "邮件主题" example@qq.com

小礼物走一走,来简书关注我

来自 https://www.jianshu.com/p/d1f757c89826




Linux安装mailx配置SMTP发送邮件

 Linux运维  3条评论  2018-1-5  8,010 views 
如需提供技术支持,VPS代购等服务,请联系博主QQ:337003006

mail命令是Linux环境下电子邮件发送和接收工具,默认情况下mail会调用sendmail发信,但sendmail很容易被视作垃圾邮件。推荐使用STMP服务替代sendmail发信,这样更加稳定。

安装mail

默认情况下可能并未内置mail命令,直接输入下面的命令安装:

#CentOS
yum install -y mailx
#Debian or Ubuntu(未测试)
apt-get -y install mailx

配置STMP

不修改任何配置的情况下mail命令会调用系统内置sendmail发信,以下使用SMTP服务替代sendmail

#修改配置文件
vi /etc/mail.rc
#在末尾追加如下内容并保存
set from=service@xiaoz.me
set smtp=smtp.exmail.qq.com
set smtp-auth-user=service@xiaoz.me
set smtp-auth-password=35******3N
set smtp-auth=login
  • set from:设置发件人

  • set smtp:设置外部STMP服务器

  • set smtp-auth-user:设置STMP用户名(一般为完整邮箱地址)

  • set smtp-auth-password:设置SMTP密码

发信测试

echo "this is my test mail" | mail -s 'mail test' xxx@qq.com
#或者
mail -s 'mail test' xxx@qq.com < test.txt

使用SSL/TLS

上述配置邮件内容是明文方式,存在安全隐患,再加上Gmail/Zoho等邮箱强制要求使用SSL/TLS加密,为了提高安全性推荐发送邮件的时候使用SSL或TLS,请继续往下看。

先找到本地nssdb证书路径,输入下面的命令:

[root@ultravps ~]# find / -name "cert*.db"
/etc/pki/nssdb/cert8.db
/etc/pki/nssdb/cert9.db

修改mail配置文件,并使用SSL加密:

#修改配置文件
vi /etc/mail.rc
#末尾追加如下内容
set from=service@xiaoz.org
set smtp=smtps://smtp.zoho.com:465
set nss-config-dir=/etc/pki/nssdb/
set ssl-verify=ignore
set smtp-auth-user=service@xiaoz.org
set smtp-auth-password=htH*****T8
set smtp-auth=login
  • set nss-config-dir:指定本地证书路径

  • set smtp=smtps://smtp.zoho.com:465 设置SMTP地址及端口,注意smtps说明启用了SSL加密

  • set ssl-verify:忽略证书错误

如果您想启用TLS加密,追加一行内容,并设置正确的TLS端口,如下:

#设置正确的地址及端口,注意这次是smtp不是smtps
set smtp=smtp://smtp.zoho.com:587
#追加一行,启用TLS
set smtp-use-starttls=yes

总结

mail命令配置外部SMTP邮件服务,可以帮助shell自动化的时候实现任务通知,到达率也比自带sendmail高很多。

此文部分内容参考与: centos 7 配置mailx发送zoho mail邮件
Mailx and Gmail nss config dir

 标签: 

3 条评论 “Linux安装mailx配置SMTP发送邮件”

  1. 来学习说道:

    感谢楼主的分享

  2. 挖站否说道:

    看来是可以放弃WP的SMTP插件了。

  3. 套图网说道:

    毫无疑问,这个是要支持的!

发表评论

来自 https://www.xiaoz.me/archives/9862



以QQ邮箱为例 (环境是centos)

  1. 环境准备 安装mailx

yum install mailx -y

  1. 查看证书:

openssl s_client -showcerts -connect smtp.qq.com:465

  1. 获取证书:

mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN >CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA - G3" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs

  1. 配置证书 /etc/mail.rc

set from=xxxooo@126.com
set smtp=smtps://smtp.126.com:465
set smtp-auth-user=xxxooo@126.com
set smtp-auth-password=你的授权码
set smtp-auth=login
#set smtp-use-starttls 这里是不需要配置的,很多地方没说明,配置了反而会验证失败,所以我注释掉;
set ssl-verify=ignore
set nss-config-dir=/root/.certs

http://blog.51cto.com/irow10/1812638

标签: none


来自 https://www.pcyo.cn/linux/20171206/186.html




CentOS6.5通过mailx使用外部SMTPSSL的方式发送邮件


本文基于:CentOS release 6.5 (Final)

注意SMTP使用默认端口25和加密端口465在配置上的区别

安装

yum -y install mailx

配置发送人信息

vim /etc/mail.rc 在最后增加:

  1. set from=yourEmailAddress
  2. set smtp=smtpAddress
  3. set smtp-auth-user=yourEmailAddress
  4. set smtp-auth-password=youPassword
  5. set smtp-auth=login

使用三种方式发送邮件

  • 命令行: mail -s "theme" addressee,回车后输入内容按Ctrl+D发送邮件.

  • 管道符: echo "mail main content" | mail -s "theme" addressee

  • 文件内容作为邮件内容: mail -s "theme" addressee < /tmp/t.txt

thme是邮件标题,addressee收件人地址


在搜索CentOS上发送邮件时,大部分都是上面的流程,的确在部分机器是测试成功的,唯独ECS不成功,后来了解到ECS默认关闭25端口。


使用SSL的方式发送邮件

  • 修改/etc/mail.rc增加如下关于SSL的配置

  1. set nss-config-dir=/etc/mail.rc_ssl.crt
  2. set smtp-user-starttls
  3. set ssl-verify=ignore
  • 修改 set smtp=smtps://xxxx.xxxx:465

  • /etc/mail.rc_ssl.crt目录下增加Firefox浏览器*.db文件(cert8.db、key3.db、secmod.db)以支持SSL的方式发送邮件

如果你的电脑上装有Firefox,windows可以在%userProfile%\AppData\Roaming\Mozilla\Firefox\Profiles\xxx.default,Linux~/.mozilla/firefox/xxx.default目录下获取*.db文件,或者直接从这类下载:https://dn-zhangguoli.qbox.me/mail.rc_ssl.crt.zip

  • 发送邮件,注意增加 -v 参数,否则报错.echo "email main content" | mail -v -s "theme" addressee

转载自:https://zhangguoli.cn/centos-sends-mail-in-the-way-mailx-uses-external-smtp-ssl.html



普通分类: