首页 > 技术文章 > linux server 发送邮件

corangeh 2018-04-10 12:48 原文

用linux服务器发送邮件
centos
1.安装mailx 和sendmail,系统一般会安装的
yum -y isntall mailx sendmail

2.修改/etc/mail.rc
set from=myname@linuxidc.com smtp=smtp.linuxidc.com

set smtp-auth-user=myname smtp-auth-password=password smtp-auth=login

#####smtp-auth-password 使用授权码登录

3.重启sendmail服务
service sendmail restart

4.收件箱添加白名单

mail -s “test” name@*.com 发送邮件测试

其他的功能

1. 使用Shell当编辑器发送邮件
这种方式可以直接在shell窗口编辑邮件正文,当编辑完成之后使用Ctrl+D退出,同时邮件也会被发送出去
# -s后面是邮件的主题,主题后面是目标邮件地址
[root@centos6 ~]# mail -s “Lucky mail” xlapn@126.com
Hi Tomas,
Thank you for you help!
Regards,
Daniel
2. 使用管道发送邮件
echo后面的是邮件正文
[root@centos6 ~]# echo "Hi Tomas,
> Thank you for you help!
> Regards,
> Daniel" | mail -s "Thank you mail" xlapn@126.com
3. 以文件的形式发送邮件正文
这种形式适合比较长的邮件正文编写,将邮件正文写入到文件mail.body,然后通过<定位到目标邮件
[root@centos6 ~]# mail -s "Thanks mail" xlapn@126.com < mail.body
4. 发送带有附件的邮件
要发送带有附件的邮件,需要安装uuencode软件包,在配置好YUM源的前提下可以使用下面的命令安装uuencode包
[root@centos6 ~]# yum install sharutils
安装好uuencode就可以发送带有附件的邮件了
# uuencode后面跟了两个参数,第一个参数”/root/batch.file“是附件全路径,第二个参数”batch“是附件在邮件中显示的名字
[root@centos6 ~]# uuencode /root/batch.file batch | mail -s "Batch file" xlapn@126.com < mail.body
会产生乱码


echo hello |mailx -s 'test' -a 'a.sh' han.cheng@oebiotech.com

echo 邮件的内容
-s "" 邮件主题
-a 附件

 

 


________________________________________________________________________
ubuntu
1.mail命令Ubuntu下是需要安装的,使用如下命令:
sudo apt-get install heirloom-mailx
2.接下来输入用户密码,等待下载安装完成
3.此时还不能发送外部服务器邮件,需要完成以下配置,修改/etc/nail.rc(Ubuntu下)或者/etc/mail.rc(centos下)
vi /etc/nail.rc
//此时如果打印没有权限则使用sudo命令,并且在有些版本下是s-nail.rc文件
//在nail.rc文件末尾添加以下两行代码
set from=user@163.com smtp=smtp.163.com
//此处以163邮箱举例,也可以使用qq邮箱,此时smtp=smtp.exmail.qq.com
//其他企业邮箱以自己公司邮箱服务器为准
set smtp-auth-user=“邮箱名” smtp-auth-password=“邮箱密码” smtp-auth=login
按以上步骤设置完毕即可用mail命令发送邮件,发送邮件有以下三种方式:
方法1:交互式邮件发送:
mail + ****@mail.com
填写主题
填写内容
ctrl + d 结束输入
cc代表抄送
回车完成发送
方法2:通道发送:
echo "内容" | mail -s "主题" “收件人邮箱”
方法3:读取文件法:
mail -s "主题" “收件人邮箱” < "文件名" >

 

参考centos /etc/mail.rc

推荐阅读