在 linux 上使用外部 smtp 服务发送邮件

最近在 linux上折腾使用脚本发送邮件的功能,遇到了很多坑,现在简单记录一下。
经尝试发现,不同邮箱服务器的安全限制不同,有些能接受来自非真实邮箱地址的邮件,有些则不能。
若想确保对方一定能接收到邮件,最好还是用真实的邮箱地址进行发送,因此这里使用外部 smtp服务发送邮件。
我一共尝试了两种方法,分别是 sendEmailmailx,皆能成功发送邮件。下面分别展示它们的使用方法。

1. sendEmail
对于 sendEmail可使用如下命令发送邮件:

$ sendEmail \
    -f user@domain.cn \
    -s smtp.domain.cn \
    -o message-charset=utf-8 \ 
    -xu user@domain.cn \
    -xp 'xxxxxx' \
    -t person@xxx.cn \
    -u "mail subject" \
    -m "mail content"

参数简单明了,-f指定发件人的邮箱地址,-s指定外部 smtp服务器的地址,-xu-xp分别是登录外部 smtp服务器的用户名和密码,-t指定收件人的邮箱地址,-u指定邮件主题,-m指定邮件正文。

2. mailx
对于 mailx可使用如下命令发送邮件:

$ env MAILRC=/dev/null \
    from=user@domain.cn \
    smtp=smtp.domain.cn \
    smtp-auth-user=user@domain.cn \
    smtp-auth-password='xxxxxx' \
    smtp-auth=login \
    mailx -n -t < content_file

content_file文件内容如下所示:

Subject: Hello
From: user@domain.cn
To: person@xxx.cn 

Nice to meet you.
Regards.

参数更加简单明了,不用作过多解释,指定 -n表示不读取 /etc/mail.rc配置文件里的内容,-t表示从标准输入中读取邮件头信息(邮件主题、发件人地址、收件人地址)和邮件正文内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值