mail|linux 系统中常用的邮件服务

前言
linux 系统中常见的邮件发送服务有sendmai 和sendEmail 两个是完全不同的东西
(1)sendmail
简介 Linux服务器mail程序本身就是调用sendmail来进行邮件发送的,sendmail服务器提供对外的邮件发送功能。CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序
安装[root@ProxyServer ~] # yum -y install sendmail [root@ProxyServer ~] # /etc/init.d/sendmail start [root@ProxyServer ~] # chkconfig sendmail on [root@ProxyServer ~] # man mail

使用 1、通过命令行发送邮件




[root@ProxyServer ~] # mail -s "test" justin@51cto.com dfdafd dfadf fadf EOT [root@ProxyServer ~] #



第一行是输入的命令,-s表示邮件的主题,后面的justin@51cto.com则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,可以输入任何文字,比如上面的三行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。
2、使用管道进行邮件发送
echo "hello,echo"|mail -s "echo" justin@51cto.com
3、使用文件进行邮件发送
mail -s "password" justin@51cto.com < /etc/passwd
4、使用外部smtp(qq的SMTP)来发送邮件
bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,而通过修改配置文件/etc/mail.rc(/etc/nail.rc)可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的。



[root@ProxyServer ~] # vim /etc/mail.rc#文末添加以下 67 set from=justin@51cto.com smtp=smtp.51cto.com 68 set smtp-auth-user=justin@51cto.com smtp-auth-password=51cto smtp-auth=login [root@ProxyServer ~] # source /etc/mail.rc [root@ProxyServer ~] # mail -s "51cto" 15001*****@139.com < /etc/passwd



from:发送的邮件地址,对方显示的发件人
smtp:发生的外部smtp服务器的地址
smtp-auth-user:外部smtp服务器认证的用户名
smtp-auth-password:外部smtp服务器认证的用户密码
smtp-auth:邮件认证的方式


(2)sendEmail


简介 http://www.ttlsa.com/linux/use-sendemail/
sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash
perl和web站点使用。
以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.
下载安装sendEmail

1 2 3 4 sendEmail下载地址: http : //caspian.dotconf.net/menu/Software/SendEmail/ # wgethttp://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载1.56版本 # tar -xzvf sendEmail-v1.56.tar.gz //解压后就可以使用了 # mv sendEmail /usr/local/bin/
发送邮件

1 2 3 #/usr/local/bin/sendEmail -fttlsafrom@163.com -t ttlsato@qq.com \ - s smtp . 163.com - u "我是邮件主题" - o message - content - type = html \ - o message - charset = utf8 - xu ttlsafrom @ 163.com - xp 123456 - m "我是邮件内容"


命令说明:


1 2 3 4 5 6 7 8 9 / usr / local / bin / sendEmail 命令主程序 - f ttlsafrom @ 163.com 发件人邮箱 - s smtp . 163.com 发件人邮箱的 smtp服务器 - u "我是邮件主题" 邮件的标题 - o message - content - type = html 邮件内容的格式 , html表示它是 html格式 - o message - charset = utf8 邮件内容编码 - xu ttlsafrom @ 163.com 发件人邮箱的用户名 - xp 123456 发件人邮箱密码 - m "我是邮件内容" 邮件的具体内容


发送成功之后会有如下提示:
Jul 29 15:02:53 e10074 sendEmail[26347]: Email was sent successfully!
sendEmail使用命令帮助

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [ root @ li229 - 122 scripts ] # sendEmail --help sendEmail - 1.56 by Brandon Zehm < caspian @ dotconf . net > Synopsis : sendEmail - f ADDRESS [ options ] Required : - f ADDRESS from ( sender ) email address * At least one recipient required via - t , - cc , or - bcc * Message body required via - m , STDIN , or - o message - file = FILE Common : - t ADDRESS [ ADDR . . . ] to email address ( es ) - u SUBJECT message subject - m MESSAGE message body - s SERVER [ : PORT ] smtp mail relay , default is localhost : 25 Optional : - a FILE [ FILE . . . ] file attachment ( s ) - cc ADDRESS [ ADDR . . . ] cc email address ( es ) - bcc ADDRESS [ ADDR . . . ] bcc email address ( es ) - xu USERNAME username for SMTP authentication - xp PASSWORD password for SMTP authentication Paranormal : - b BINDADDR [ : PORT ] local host bind address - l LOGFILE log to the specified file - v verbosity , use multiple times for greater effect - q be quiet ( i . e . no STDOUT output ) - o NAME = VALUE advanced options , for details try : -- help misc - o message - content - type = < auto | text | html > - o message - file = FILE - o message - format = raw - o message - header = HEADER - o message - charset = CHARSET - o reply - to = ADDRESS - o timeout = SECONDS - o username = USERNAME - o password = PASSWORD - o tls = < auto | yes | no > - o fqdn = FQDN Help : -- help the helpful overview you' re reading now -- help addressing explain addressing and related options -- help message explain message body input and related options -- help networking explain - s , - b , etc -- help output explain logging and other output options -- help misc explain - o options , TLS , SMTP auth , and more
sendEmail脚本发送

vim mail.sh #!/bin/bash to=$1 subject=$2 body=$3 server="smtp.exmail.qq.com" user="system@124.com" pwd="Tsdyosds" /usr/local/bin/sendEmail -f system@tuzuu.com -t "$to" -s $server -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu $user -xp $pwd -m "$body" 2>>/tmp/22.log./mail.sh waxxxo@163.com 1212 xxx










前言


linux 系统中常见的邮件发送服务有sendmai 和sendEmail 两个是完全不同的东西
(1)sendmail
简介 Linux服务器mail程序本身就是调用sendmail来进行邮件发送的,sendmail服务器提供对外的邮件发送功能。CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序
安装[root@ProxyServer ~] # yum -y install sendmail [root@ProxyServer ~] # /etc/init.d/sendmail start [root@ProxyServer ~] # chkconfig sendmail on [root@ProxyServer ~] # man mail

使用 1、通过命令行发送邮件




[root@ProxyServer ~] # mail -s "test" justin@51cto.com dfdafd dfadf fadf EOT [root@ProxyServer ~] #



第一行是输入的命令,-s表示邮件的主题,后面的justin@51cto.com则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,可以输入任何文字,比如上面的三行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。
2、使用管道进行邮件发送
echo "hello,echo"|mail -s "echo" justin@51cto.com
3、使用文件进行邮件发送
mail -s "password" justin@51cto.com < /etc/passwd
4、使用外部smtp(qq的SMTP)来发送邮件
bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,而通过修改配置文件/etc/mail.rc(/etc/nail.rc)可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的。



[root@ProxyServer ~] # vim /etc/mail.rc#文末添加以下 67 set from=justin@51cto.com smtp=smtp.51cto.com 68 set smtp-auth-user=justin@51cto.com smtp-auth-password=51cto smtp-auth=login [root@ProxyServer ~] # source /etc/mail.rc [root@ProxyServer ~] # mail -s "51cto" 15001*****@139.com < /etc/passwd



from:发送的邮件地址,对方显示的发件人
smtp:发生的外部smtp服务器的地址
smtp-auth-user:外部smtp服务器认证的用户名
smtp-auth-password:外部smtp服务器认证的用户密码
smtp-auth:邮件认证的方式


(2)sendEmail


简介 http://www.ttlsa.com/linux/use-sendemail/
sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash
perl和web站点使用。
以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.
下载安装sendEmail

1 2 3 4 sendEmail下载地址: http : //caspian.dotconf.net/menu/Software/SendEmail/ # wgethttp://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz //下载1.56版本 # tar -xzvf sendEmail-v1.56.tar.gz //解压后就可以使用了 # mv sendEmail /usr/local/bin/
发送邮件 【mail|linux 系统中常用的邮件服务】

1 2 3 #/usr/local/bin/sendEmail -fttlsafrom@163.com -t ttlsato@qq.com \ - s smtp . 163.com - u "我是邮件主题" - o message - content - type = html \ - o message - charset = utf8 - xu ttlsafrom @ 163.com - xp 123456 - m "我是邮件内容"


命令说明:


1 2 3 4 5 6 7 8 9 / usr / local / bin / sendEmail 命令主程序 - f ttlsafrom @ 163.com 发件人邮箱 - s smtp . 163.com 发件人邮箱的 smtp服务器 - u "我是邮件主题" 邮件的标题 - o message - content - type = html 邮件内容的格式 , html表示它是 html格式 - o message - charset = utf8 邮件内容编码 - xu ttlsafrom @ 163.com 发件人邮箱的用户名 - xp 123456 发件人邮箱密码 - m "我是邮件内容" 邮件的具体内容


发送成功之后会有如下提示:
Jul 29 15:02:53 e10074 sendEmail[26347]: Email was sent successfully!
sendEmail使用命令帮助

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [ root @ li229 - 122 scripts ] # sendEmail --help sendEmail - 1.56 by Brandon Zehm < caspian @ dotconf . net > Synopsis : sendEmail - f ADDRESS [ options ] Required : - f ADDRESS from ( sender ) email address * At least one recipient required via - t , - cc , or - bcc * Message body required via - m , STDIN , or - o message - file = FILE Common : - t ADDRESS [ ADDR . . . ] to email address ( es ) - u SUBJECT message subject - m MESSAGE message body - s SERVER [ : PORT ] smtp mail relay , default is localhost : 25 Optional : - a FILE [ FILE . . . ] file attachment ( s ) - cc ADDRESS [ ADDR . . . ] cc email address ( es ) - bcc ADDRESS [ ADDR . . . ] bcc email address ( es ) - xu USERNAME username for SMTP authentication - xp PASSWORD password for SMTP authentication Paranormal : - b BINDADDR [ : PORT ] local host bind address - l LOGFILE log to the specified file - v verbosity , use multiple times for greater effect - q be quiet ( i . e . no STDOUT output ) - o NAME = VALUE advanced options , for details try : -- help misc - o message - content - type = < auto | text | html > - o message - file = FILE - o message - format = raw - o message - header = HEADER - o message - charset = CHARSET - o reply - to = ADDRESS - o timeout = SECONDS - o username = USERNAME - o password = PASSWORD - o tls = < auto | yes | no > - o fqdn = FQDN Help : -- help the helpful overview you' re reading now -- help addressing explain addressing and related options -- help message explain message body input and related options -- help networking explain - s , - b , etc -- help output explain logging and other output options -- help misc explain - o options , TLS , SMTP auth , and more
sendEmail脚本发送

vim mail.sh #!/bin/bash to=$1 subject=$2 body=$3 server="smtp.exmail.qq.com" user="system@tuzuu.com" pwd="Tuzhuyou3498" /usr/local/bin/sendEmail -f system@tuzuu.com -t "$to" -s $server -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu $user -xp $pwd -m "$body" 2>>/tmp/22.log./mail.sh wanglitao@tuzuu.com 1212 xxx





    推荐阅读