Linux 使用 mail/mailx 发送邮件
ZKEASOFT November 01, 2017
在Linux服务器维护的时候,发送邮件有时很有必要,当检测到服务、程序有问题时,可以及时发送邮件通知您处理,当然可以自己写个程序来发送,mailx已经很强大。
安装 mailx
# ubuntu/debian
$ sudo apt-get install heirloom-mailx
# fedora/centos
$ sudo yum install mailx
1. 简单的邮件
$ mail -s "This is the subject" someone@example.com
Hi someone
How are you
I am fine
Bye
EOT
输入第一行命令,回车之后就可以输入邮件的内容了,完成输入内容后按 CTRL+D ,mailx 就会显示出 EOT。
2. 使用文件中的取邮件内容
$ mail -s "This is Subject" someone@example.com < /path/to/file
或者可以使用 echo
$ echo "This is message body" | mail -s "This is Subject" someone@example.com
3. 多个收件人
多个收件人,收件地址只需要用逗号“,”隔开即可。
$ echo "This is message body" | mail -s "This is Subject" someone@example.com,someone2@example.com
4. 抄送和密送CC,BCC
用 -c 表示抄送,-b 表示密送
$ echo "This is message body" | mail -s "This is Subject" -c ccuser@example.com someone@example.com
5. 定义发件人信息
使用 -r 定义发件人
$ echo "This is message body" | mail -s "This is Subject" -r "Harry<harry@gmail.com>" someone@example.com
6. 使用特殊的回复地址
# 回复地址
$ echo "This is message" | mail -s "Testing replyto" -S replyto="mark@gmail.com" someone@example.com
# 回复地址和名称
$ echo "This is message" | mail -s "Testing replyto" -S replyto="Mark<mark@gmail.com>" someone@example.com
7. 发送附件
使用 "-a" 加上文件路径即可
$ echo "This is message body" | mail -s "This is Subject" -r "Harry<harry@gmail.com>" -a /path/to/file someone@example.com
8. 使用外部的SMTP服务器
使用外部的SMTP服务器,这样就可以不用自己架设邮件服务器了。
$ echo "This is the message body and contains the message" | mailx -v -r "someone@example.com" -s "This is the subject" -S smtp="mail.example.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="someone@example.com" -S smtp-auth-password="abc123" -S ssl-verify=ignore yourfriend@gmail.com
或者使用换行的形式,可读性更强
$ echo "This is the message body and contains the message" | mailx -v \
> -r "someone@example.com" \
> -s "This is the subject" \
> -S smtp="mail.example.com:587" \
> -S smtp-use-starttls \
> -S smtp-auth=login \
> -S smtp-auth-user="someone@example.com" \
> -S smtp-auth-password="abc123" \
> -S ssl-verify=ignore \
> yourfriend@gmail.com