如何在Linux命令行关闭node服务器中通过SMTP服务器发送电子邮件

拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3ba7-ua98).
重新安装浏览器,或使用别的浏览器linux CentOS6的mail/sendmail命令发送电子邮件实现
我的图书馆
linux CentOS6的mail/sendmail命令发送电子邮件实现
我经常使用linux也是因为工作都需要在linux centos6中操作,下面来介绍我在linux 中使用mail命令实现邮件发送的方法过程。由于经常工作在下,所以很多时候需要将自己工作的报告或其他有用的东东发送给相关的人,所以花时间研究了一下在linux下如何发送mail。我们通常能用到下面3中发送方式:
1. 使用Shell当编辑器发送
这种方式可以直接在shell窗口编辑邮件正文,当编辑完成之后使用Ctrl+D退出,同时邮件也会被发送出去
# -s后面是邮件的主题,主题后面是目标邮件地址[root@centos6 ~]# mail -s “Lucky mail”
Thank you for you help!
Daniel2. 使用管道发送邮件
echo后面的是邮件正文
[root@centos6 ~]# echo "Hi Tomas,
& Thank you for you help!
& Regards,
& Daniel" | mail -s "Thank you mail" 3. 以文件的形式发送邮件正文
这种形式适合比较长的邮件正文编写,将邮件正文写入到文件mail.body,然后通过&定位到目标邮件
[root@centos6 ~]# mail -s "Thanks mail"
& mail.body4. 发送带有附件的邮件
要发送带有附件的邮件,需要安装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"
& mail.body以上的一些命令都是在CentOS6上测试过的
使用sendmail发送邮件
sendmail是linux/unix系统下用来发送邮件的客户端。sendmail使用SMTP协议将邮件发送到目的SMTP服务器。其工作流程大概如下:
&&& 首先要说一下DNS的MX记录:SMTP服务器基于DNS中的MX(mail exchange)记录来路由电子邮件,MX记录注册了域名和相关的SMTP中继主机,属于该域的电子邮件都应向该主机发送。
&& (1)Sendmail 请求DNS给出主机的CNAME 记录,如有,假若CNAME(别名记录)到,则再次请求的CNAME记录,直到没有为止。
&& (2)假定被CNAME到,然后sendmail请求@ 域的DNS给出的MX记录(邮件路由及记录),shmail MX 5
&& (3)Sendmail组合请求DNS给出的A记录(主机名(或域名)对应的IP地址记录),即IP地址,若返回值为10.0.0.4(假设值)。
&& (4)Sendmail与10.0.0.4连接,传送这封给user@ 的信到1.2.3.4 这台服务器的SMTP后台程序。
1. 构造邮件
&&& 在使用sendmail发送邮件之前,首先需要按邮件格式构造一封邮件。包括邮件头,邮件消息体。邮件格式在
RFC5322:internet message format(http://tools.ietf.org/html/rfc5322)中有详细说明。
Code highlighting produced by Actipro CodeHighlighter (freeware)
--&From: John Doe &jdoe@machine.example&
Sender: Michael Jones &mjones@machine.example&
To: Mary Smith &&
Subject: Saying Hello
Date: Fri, 21 Nov :06 -0600
Message-ID: &1234@local.machine.example&
This is a message just to say hello.
So, "Hello".
可以暂不指定date头(邮件发送时间)和messageid,这个信息将由sendmail程序填写。
2. 使用sendmail发送邮件
&&& 将邮件构造好之后,保存到一个本地文件,如/data/mail_content。然后调用sendmail发送,发送时指定接收邮箱地址:
&&& cat /data/mail_content | sendmail
3. 发送HTML格式的邮件
&&& 如果要发送html格式的邮件, 就是说,邮件的消息体为一个html文件,需要在邮件头中指定 content-type为 text/html。如果不指定,默认情况下,content-type为text/plain,即普通文本。
Code highlighting produced by Actipro CodeHighlighter (freeware)/--&From: John Doe &jdoe@machine.example&
Sender: Michael Jones &mjones@machine.example&
To: Mary Smith &&
Content-type: text/html
Subject: Saying Hello
&div style="border:solid 1px #1D448C;"&
&h1&This is a message just to say hello.&/h1&
&p&So, "Hello".&/p&
4. 字符编码
&&& 在发送中文邮件中,字符编码是一个比较重要的问题,如果设置不正确,会导致邮件标题或邮件内容显示乱码。
&&& 邮件内容的编码可以在邮件头content-type中设置,如设置邮件内容为utf-8编码:
&&& Content-type: text/charset=utf-8
&&& 邮件头中,如From,To,Subject等,如果需要用到中文,可以这样设置:
“=?UTF-8?B?”+base64encode(内容UTF8编码)+"?="
Code highlighting produced by Actipro CodeHighlighter (freeware)/--&From: =?UTF-8?B?5L2g5aW9?= &jdoe@machine.example&
Sender: Michael Jones &mjones@machine.example&
To: Mary Smith &&
Content-type: text/charset=utf-8
Subject: =?UTF-8?B?5L2g5aW9?=
&div style="border:solid 1px #1D448C;"&
&h1&This is a message just to say hello.&/h1&
&p&So, "Hello".&/p&
上面我们也看到sendmail邮件发送配置超麻烦,下面我们不用sendmail来发,实例
bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的
资源占用。而通过修改可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的:
修改/etc/nail.rc (/etc/mail.rc)
set from= smtp=set smtp-auth-user=username smtp-auth-pass=passwordset smtp-auth=login
from是发送的邮件地址
smtp是发生的外部smtp服务器的地址
smtp-auth-user是外部smtp服务器认证的用户名
smtp-auth-password是外部smtp服务器认证的用户密码
smtp-auth是邮件认证的方式
配置成功后,就可以使用了
可以发送一封邮件测试一下:
mail -s "test"
&content.txt
其中-s后面的是邮件标题,是收件人地址,content.txt里面是邮件正文
TA的最新馆藏
喜欢该文的人也喜欢9419人阅读
linux(5)
安装mailx,如下:
grefen@ubuntu:~$ sudo apt-get install mailx
Reading package lists... Done
Building dependency tree & & &&
Reading state information... Done
Package mailx is a virtual package provided by:
& mailutils 1:2.99.98-1.1
& heirloom-mailx 12.5-2
& bsd-mailx 8.1.2-0.cvs-1
You should explicitly select one to install.
E: Package 'mailx' has no installation candidate
grefen@ubuntu:~$ sudo apt-get install heirloom-mailx
需要注意的是要选择第二项来安装,即heirloom-mailx
#sudo vim /etc/nail.rc
set from=<span style="color:#8@qq.com
set smtp-auth-user=<span style="color:#8
set smtp-auth-password=sbsbsbsb
set smtp-auth=login
然后即可发送邮件
&echo &hello word | mail -s & title&
重要提示:如果是qq邮箱,要先在你的qq邮箱-&设置-&账户-&开启pop3/smtp服务
如果仅仅要从linux里面发送邮件这样就可以了,不需要安装mail服务器;
在centos上安装命令
#yum -y install mailx
配置文件是:vim /etc/mail.rc
没错,与上面的配置文件不同,一个是nail.rc一个是mail.rc
如果上面再ubantu上安装选择bsd-mailx来安装,那么配置文件是不是就和centos上的一样了呢?待考证!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:114418次
积分:1944
积分:1944
排名:千里之外
原创:63篇
转载:13篇
评论:33条
(1)(1)(1)(2)(1)(3)(1)(1)(1)(1)(1)(2)(1)(1)(3)(6)(35)(3)(1)(1)(2)(4)(3)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 命令行远程重启服务器 的文章

 

随机推荐