zoukankan      html  css  js  c++  java
  • 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 <test1@gmail.com>
    4. Sender: jkjl <test@gmail.com>
    5. To: test@qq.com 
    6. Cc: test@g.cn 
    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 ureamil@email.com


    方法2

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

    1. sudo apt-get install mailutils

    然后发送邮件

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


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

    1. mail -s Title -t test1@163.com -t test2@163.com < hello.txt


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

    1. sudo apt-get install sharutils

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

    1. uuencode hello.txt bienvenu |mail -s Test test@163.com

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



    方法3:

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

    1. echo hello|formail -I "From:test@163.com" -I "MIME-Version:1.0" -I "Content-type:text/html;charset=gb2312" -I "Subject:test"|sendmail -oi aimEmail@mailserver.com



    方法4:

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

    mutt -s "Test mail" test@163.com -a test.jpg < hello.txt
    其中:s—主题  a—附件

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

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

  • 相关阅读:
    Windows 科研软件推荐
    有关Python 包 (package) 的基本知识
    《Using Python to Access Web Data》Week4 Programs that Surf the Web 课堂笔记
    Coursera助学金申请模板
    《Using Databases with Python》 Week2 Basic Structured Query Language 课堂笔记
    Jupyter 解决单个变量输出问题
    解决 pandas 中打印 DataFrame 行列显示不全的问题
    《Using Python to Access Web Data》 Week3 Networks and Sockets 课堂笔记
    缓存击穿及解决方案
    jvm垃圾收集器
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/5571964.html
Copyright © 2011-2022 走看看