email配置
1)apt-get install mailutils //安装mail命令 2)mail -s "Hello from Linux Server by shell" shihaibin@126.com //测试 //出现报错 cannot send message: Process exited with a non-zero status 3)sudo dpkg-reconfigure postfix //改配置命令选第二个后不报错了 但还是收不到邮件
//找了网上多个博客一个个测试后找到了能用的方法: https://blog.csdn.net/littlewhite1989/article/details/53302329 echo -e "To: shihaibin@126.com\nCC: handy1989@qq.com\nFrom: handy<handy@test.com>\nSubject: test\n\nhello world" | sendmail -t
按上面博客的内容整理一下
1)新建mail.txt文件 粘贴下面的配置 //to收件人 cc抄送人 from发件人 subject标题 下面是邮件内容 //如果有多个收件人或抄送人,用逗号分隔 To: shihaibin@126.com CC: handy1989@qq.com From: handy<handy@test.com> Subject: test hello world 2)发送邮件 cat email.txt | sendmail -t
3)若邮件中带有中文 要先对中文进行base64加密 格式为=?UTF-8?B?xxxxxx?= //xxx就是中文加密的密文 我找到了下面网站可以base64加密 http://www.jsons.cn/base64/
或者 echo 加密字段 | base64 来打印获取加密字段 例子:邮件中文标题 '测试' '测试'加密后为 5rWL6K+V 改为Subject: =?UTF-8?B?5rWL6K+V?= 发送邮件 测试成功 邮件标题变为中文
4)若邮件内容带html 邮件头添加Content-type字段来标记文本类型 例子: To: shihaibin@126.com CC: handy1989@qq.com From: =?UTF-8?B?5rWL6K+V?=<handy@test.com> Subject: =?UTF-8?B?5rWL6K+V?= Content-type: text/html;charset=utf-8 <h1>hello world</h1>
5)日志位置
var/mail/用户名
接收邮件中带有 ‘(由root@ubuntu.localdomain代发)’ 字样 取消方法如下:
root是我发邮件用的linux系统用户名 ubuntu是我本地hosts中ip域名
在hosts中随便配置一个127.0.0.1 xxx.com //域名随便定义 要带个点.
邮件中就不会出现(***代发)字样 hosts中写的域名不会体现在邮件中