分类: Linux

Linux下使用mailx调用SMTP发送邮件

Centos下安装:

yum install mailx -y

配置文件/etc/mail.rc
范例如下:

set bsdcompat
set from=dbback@yueworld.cn
set smtp=mail.yueworld.cn
set smtp-auth-user=xxx
set smtp-auth-password=xxxxx
set smtp-auth=login

Ubuntu下安装:

sudo apt-get install heirloom-mailx

配置文件在/etc/mail.rc里面;
邮箱需要打开POP/SMTP服务
管道发送如下:
发送标题为abc123 邮件内容为‘hello world’到xxx@qq.com邮箱

echo 'hello world' | mail -s 'abc123' xxx@qq.com

发送文件:
发送/opt/mail.html文件到xxx@163.com和xxx@126.com邮箱里,邮件标题为XXX项目数据库备份通知

mail -s "$(echo -e "XXX项目数据库备份通知\nContent-Type: text/html;charset=gb2312")"xxx@163.com xxx@126.com < /opt/mail.html

文件内容最好是gb2312的要么会乱码;
命令行参数说明:

-A     执行帐户的命令( 见下文 )的名称启动文件被读取之后。
-a     给定的文件附加到邮件中。
-B    使标准输入和标准输出线- 缓冲 。
-b     发送密件副本 列表 。 列表应该是一个逗号分隔的名称列表。
-c    送炭复制到地址列表 。
-D    开始在断开模式; 看到断开的变量的描述选项。
-d    启用调试消息和关闭消息的实际交付。 不像-v,此选项仅用于开发目的。
-e    只是检查是否有邮件系统邮箱。 如果是,返回零,否则,一个非零值退出状态。
-E    如果传出消息,不包含在它的第一个或唯一的消息部分的任何文字,不要把它丢弃,但它静静地,有效地设置在程序启动时的skipemptybody变量。 这是一个从发送消息有用的脚本由启动cron的 。
-f    阅读在用户的邮箱中的内容(或文件时 ,如果指定)进行处理; 当mailx的是退出,将其写入未删除的邮件恢复该文件。 该字符串作为文件处理描述为文件夹命令如下。
-F    保存要发送的消息中的第一个收件人的地址的本地部分命名的文件。
-H    打印头汇总所有消息并退出。
-h    调用的sendmail与指定的跃点数。 此选项没有在使用SMTP发送邮件的效果。
-i    TTY忽略中断信号。 使用mailx的对噪音的电话线时,这是非常有用的。
-I    显示了“ 新闻组:'或' 文章ID:'在标题汇总字段。 只有在与-f结合使用时适用。
-n    禁止阅读/etc/mail.rc启动时。 这个选项应该适用于对多台计算机调用mailx的脚本来启动,因为文件的内容,它们之间可能有所不同。
-N    阅读邮件或编辑邮件文件夹时禁止消息头的初始显示。
-q    启动与指定的文件的内容的消息。 可仅在发送模式给出。
-r    设置发件人地址。 忽略任何从指定的变量环境变量或启动文件。 波浪号逃逸被禁用。 该-r地址选项被传递到邮件传输代理,除非使用SMTP。 此选项存在唯一的相容性; 它建议,而不是直接设置从变量。
-R    如果打开文件夹的只读打开它们。
-s    指定主题的命令行(仅后-s标志作为主题的第一个参数,要注意引用包含空格的科目)。
-S    设置内部选项变量变量的可选值的价值 。
-T    写“ 邮件ID:”和“ 文章ID:'读入文件名 ​​的每个消息头字段。 暗示-我 。 压缩文件的处理所描述的文件夹命令如下。
-t    要发送的消息,预计将包含一个消息头“ 收件人:”,“抄送 ”或“ 密件抄送:”字段给收件人。 在命令行上指定的收件人将被忽略。
-u    读取用户的用户的邮箱。
-v    详细模式。 递送的详细信息显示在用户的终端上。
-V    显示版本信息并退出。
- 〜    启用波浪逃逸 ,即使不是在交互模式。

发表新评论