Linux下如何使用sendEmail來發送郵件

1)什么是sendEmail

sendEmail是一個輕量級,命令行的SMTP郵件客戶端(注意,不要跟sendmail混淆了)。如果你需要使用命令行發送郵件,那么sendEmail是非常完美的選擇:使用簡單并且功能強大,從此以后你就愛上了它。

2)安裝sendEmail

[root@zabbix ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
[root@zabbix ~]# tar -zxvf sendEmail-v1.56.tar.gz 
sendEmail-v1.56/
sendEmail-v1.56/CHANGELOG
sendEmail-v1.56/README
sendEmail-v1.56/README-BR.txt
sendEmail-v1.56/TODO
sendEmail-v1.56/sendEmail
sendEmail-v1.56/sendEmail.pl
[root@zabbix ~]# ls
anaconda-ks.cfg  bin  conf  sendEmail-v1.56  sendEmail-v1.56.tar.gz  zabbix_agent.tar
[root@zabbix ~]# cd sendEmail-v1.56/
[root@zabbix sendEmail-v1.56]# ls
CHANGELOG  README  README-BR.txt  sendEmail  sendEmail.pl  TODO
[root@zabbix sendEmail-v1.56]# mv sendEmail /usr/local/bin/        
[root@zabbix sendEmail-v1.56]# which sendEmail
/usr/local/bin/sendEmail
[root@zabbix sendEmail-v1.56]# /usr/local/bin/sendEmail -f molewan@163.com -t 314324506@qq.com -s smtp.163.com -u "我是郵件主題" -o message-content-type=html 
-o message-charset=utf8 -xu molewan@163.com -xp "這里需要郵箱的密碼" -m "我是郵件內容"

Nov 11 09:23:22 zabbix sendEmail[7608]: Email was sent successfully!

sendEmail截圖.png

注意:需要開啟163的smtp功能

sendEmail-2.png

3)sendEmail常用參數說明

-f molewan@163.com       發件人郵箱

-s smtp.163.com          發件人郵箱的smtp服務器

-u "我是郵件主題"         郵件的標題

-o message-content-type=html  郵件內容的格式,html表示它是html格式

-o message-charset=utf8     郵件內容編碼

-xu molewan@163.com        發件人郵箱的用戶名

-xp “密碼”             發件人郵箱密碼

-m "我是郵件內容"         郵件的具體內容

[root@zabbix sendEmail-v1.56]# 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

4)sendEmail的兩個實際例子

a、結合zabbix進行郵件告警(腳本從網絡上qicheng大神博客直接下來修改的)

#!/bin/bash
#
# Filename:    SendEmail.sh
# Revision:    1.0
# Date:        2014/07/04
# Author:      Qicheng
# Email:
# Website:     http://qicheng0211.blog.51cto.com/
# Description: zabbix郵件告警腳本
# Notes:       使用sendEmail
#
# 腳本的日志文件
LOGFILE="/tmp/Email.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1
SMTP_server='smtp.163.com'                # SMTP服務器,變量值需要自行修改
username='wanlong860514@163.com'          # 用戶名,變量值需要自行修改
password='輸入郵箱的密碼'             # 密碼,變量值需要自行修改
from_email_address='wanlong860514@163.com'  # 發件人Email地址,變量值需要自行修改
to_email_address="$1"                # 收件人Email地址,zabbix傳入的第一個參數
message_subject_utf8="$2"              # 郵件標題,zabbix傳入的第二個參數
message_body_utf8="$3"               # 郵件內容,zabbix傳入的第三個參數
# 轉換郵件標題為GB2312,解決郵件標題含有中文,收到郵件顯示亂碼的問題。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
# 轉換郵件內容為GB2312,解決收到郵件內容亂碼
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
# 發送郵件
sendEmail='/usr/local/bin/sendEmail'
set -x
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312

b、內網發送郵件

[root@C67-X64-A0 ~]# cat checknetwork.sh 

#!/bin/bash
#created by molewan
for n in {10,11,12,20,21,22,191}
    do
     nmap -v -sP 10.203.$n.0/24 | grep -v 'host down' |egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'>/tmp/uplist$n.log 
   done
/usr/local/bin/sendEmail -f dfylmailtest@163.com -t dpwanl@dfl.com.cn -s smtp.163.com -u "network ALL"
 -o message-content-type=html -o message-charset=utf8 -xu dfylmailtest@163.com -xp LM@2008 -m  
 "network ALL"  -a /tmp/uplist*

執行腳本并查收看生成的文件:

[root@C67-X64-A0 ~]# bash checknetwork.sh 
Jul 29 14:35:14 c67-x64-a0 sendEmail[4166]: Email was sent successfully!
[root@C67-X64-A0 ~]# ls /tmp/
exploit         lost+found  pulse-mFN57JFCgte9  uplist10.log  uplist12.log   uplist20.log  uplist22.log
keyring-R8TupG  orbit-gdm   pulse-n6rjDFCVr3Y6  uplist11.log  uplist191.log  uplist21.log  virtual-root.ZiX1iv

sendEmail截圖.png

原創文章,作者:Net21-冰凍vs西瓜,如若轉載,請注明出處:http://www.www58058.com/26650

(1)
Net21-冰凍vs西瓜Net21-冰凍vs西瓜
上一篇 2016-07-29
下一篇 2016-07-29

相關推薦

  • PHP安全模式詳解(PHP5.4安全模式將消失)

    1. 安全模式      一直沒有用過php的safe_mode安全模式,以此說明作為日后參考。      PHP 的安全模式是為了試圖解決共享服務器(shared-server)安全問題而設立的。在結構上,試圖在 PHP 層上解決這個問題是不合理的,但修改 web 服務器層和操作系統層顯得非常不現…

    Linux干貨 2015-06-02
  • 當Web訪問性能出現問題,如何深探?

    對運維或開發工程師來說,遇到訪問性能問題時,最先需要定位的是問題出現在哪個環節,是網絡的問題,服務端的問題,還是客戶端的問題? 往往技術人員喜歡把精力放在保障后端服務的可用性方面,而對前端界面是否能正常裝載,是否能完整渲染不是太關心。但從業務的角度來說,界面承載的才是最終的業務,業務是通過人機交互來實現的。 日常我們遇到哪些場景需要定位訪問性能瓶頸? ·不同…

    系統運維 2017-01-09
  • 自制Linux系統

                          自制Linux系統 1、環境準備:         在centos6上添加一塊新硬盤,并分區格式化。 &n…

    系統運維 2016-09-21
  • 手動添加用戶

        通常使用useradd命令可以輕松添加一個用戶,然后使用passwd命令設置一個密碼后就可以登錄系統了,其實這一過程完成可以自己手動完成,下面就讓我們來通過修改配置文件來添加一個用戶。 一、修改/etc/passwd文件     在etc/passwd文件中手動添加一行內…

    Linux干貨 2015-04-27
  • C++的std::string的“讀時也拷貝”技術!

    C++的std::string的讀時也拷貝技術! 嘿嘿,你沒有看錯,我也沒有寫錯,是讀時也拷貝技術。什么?我的錯,你之前聽說寫過時才拷貝,嗯,不錯的確有這門技術,英文是Copy On Write,簡寫就是COW,非?!!?!那么我們就來看看這個’?!夹g的效果吧。 我們先編寫一段程序 #include <string> #include…

    Linux干貨 2015-04-03
  • Linux Network Manager

    Linux Network Manager Network簡述 Switch,Router簡述 Linux Network 配置方法 ifcfg家族命令 ip家族命令 rhel7 nmcli命令 配置文件 Network簡述 Network是什么? 網絡是將分布在地理位置不同的計算機通過物理線路的連接,在網絡軟件的管理下,實現數據通信的過程。&nb…

    Linux干貨 2016-04-05
欧美性久久久久