linux服务器下发送邮件

Posted 专注it

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux服务器下发送邮件相关的知识,希望对你有一定的参考价值。

系统管理人员经常会遇到对于设备或者任务的预警与通知,通常情况有发送短信、邮件等方式。发送短信一般来说需要有短信猫(硬件)或者调用libfetion给飞信用户发送。本文介绍几种简单的发送邮件的方式。

本文环境:Ubuntu 10.04
基础:
      Linux服务器发送邮件一般都是基于sendmail进行的,sendmail服务器提供对外的邮件发送功能。其他工具都是基于sendmail进行服务的。所以要在linux系统发送邮件,首先需要安装sendmail服务器安装方法:

  1. #sudo apt-get install sendmail

然后通过ps查看是否有sendmail进程,如果存在,则安装成功:

  1. #ps -ef|grep sendmail
  2.  
  3. root 1282 1 0 13:39 ? 00:00:00 sendmail: MTA: accepting connections

成功安装sendmail后,就可以向邮件账户发送邮件了。

=====================分割线===============================

     本文列出了在linux下常用的发送邮件的方法,供大家参考。
方法1
直接使用sendmail,编辑如下文件a.sh,通过chmod 更改权限后执行就可以。

  1. #!/bin/bash
  2. /usr/sbin/sendmail -t << EOF
  3. From: Mail test <[email protected]>
  4. Sender: jkjl <[email protected]>
  5. To: [email protected] 
  6. Cc: [email protected] 
  7. Subject: mail testing 
  8. ---------------------------------- 
  9. This is the mail content ...
  10. muhaha
  11. ---------------------------------
  12. EOF

man sendmail 

-t参数的含义
 

-t     Read message for recipients. To:, Cc:, and Bcc: lines will be
 
              scanned for recipient addresses. The Bcc: line will be deleted
              before transmission.

    另外,sendmail默认从标准输入读入内容直到结束或者遇到".",-oi 就是认为遇到"."不再认为是结束符了。如下:
echo "hahaha.my"|sendmail -oi [email protected]


方法2

利用mail工具发送,利用mail发送邮件必须安装mailutils

  1. sudo apt-get install mailutils

然后发送邮件

  1. $ mail -s "just a test" 收信人邮箱地址 < 要发送的邮件内容文件 
  1. mail -s "haha" [email protected] < hello.txt


mail 工具的-t 可以跟多个用户,如下:

  1. mail -s Title -t [email protected] -t [email protected] < hello.txt


如果要发送带附件的邮件,则需要先安装uuencode,uuencode 在sharutils包中

  1. sudo apt-get install sharutils

然后再发送
uuencode 附件名 显示附件名| mail -s 题目 目的邮箱

  1. uuencode hello.txt bienvenu |mail -s Test [email protected]

如果按上面的方法,邮件只带一个附件,即将正文和附件组成联合文件发出。



方法3:

利用formail和sendmail联合发送:
formail可以封装邮件信息,然后调用sendmail发送,经典例子如下:

  1. echo hello|formail -I "From:[email protected]" -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:test"|sendmail -oi [email protected]



方法4:

使用mutt发送
mutt是一个linux下非常好用的email程序,最典型的一个例子如下:

mutt -s "Test mail" [email protected] -a test.jpg < hello.txt
其中:s—主题  a—附件

最后追加的是
邮件内容
 mutt甚至可以使用pgp加密,利用mutt支持MIME,解决乱码问题等,总之mutt是个人认为的最好用的email工具。

    本期知识就介绍到这里,希望大家能有所收获。分享一句话:要有梦想,即使它看似遥远。

以上是关于linux服务器下发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

linux下发送邮件过程

linux下使用自带mail发送邮件

linux下设置SMTP服务器并用mail命令发送邮件精解

linux怎么接收windows发送的信息( 邮件)?

java在linux下调用smtp协议发送邮件

linux下配置使用sendEmail发送邮件