linux 配置郵件傳送功能
1.mutt+msmtp的安裝
預設情況下smokeping傳送郵件使用sendmail,但是sendmail配置起來真心不是一般的麻煩,而且也沒有必要,完全大材小用了,所以我就想用mutt+msmtp的方案來發送告警郵件。 首先安裝mutt和msmtp這兩個軟體。 如果是在線上安裝,那麼直接apt-get install就好了,會自動幫助我們安裝關聯包。 如果是在離線環境下,我們可以先在有線環境下安裝。然後再將用到的安裝包拷貝的離線環境下安裝(這是因為使用apt-get install會將所有安裝包及關聯包下載到/var/cache/apt/archives目錄下),然後使用以下命令逐個安裝deb安裝包。sudo dpkg -i package.deb
以下是線上安裝方式,我們可以在安裝資訊中看到有哪些依賴包,我們記住這些依賴包的名稱,到時候拷貝出來就好了。
[email protected]:/var/cache/apt/archives$ sudo apt-get install mutt [sudo] password for bitnami: Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libgpgme11 libpth20 libtokyocabinet8Suggested packages: gpgsm urlview aspell ispell mixmaster The following NEW packages will be installed: libgpgme11 libpth20 libtokyocabinet8 mutt 0 upgraded, 4 newly installed, 0 to remove and 50 not upgraded. Need to get 1,752 kB of archives. After this operation, 5,197 kB of additional disk space will be used.[email protected]:~$ sudo apt-get install msmtp Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libgsasl7 libntlm0 Suggested packages: msmtp-mta The following NEW packages will be installed: libgsasl7 libntlm0 msmtp 0 upgraded, 3 newly installed, 0 to remove and 50 not upgraded. Need to get 265 kB of archives. After this operation, 1,201 kB of additional disk space will be used. Do you want to continue [Y/n]?
2.配置msmtp和mutt
2.1配置msmtp
建立msmtp日誌檔案“.msmtp.log”,在.msmtprc當中指定,注意這裡的"."表示是隱藏檔案,內容為空。$ sudo vim ~/.msmtp.log
配置msmtp配置檔案“.msmtprc”
#Accounts will inherit settings from this section defaults # A first gmail address account gmail host smtp.gmail.com port 587 from [email protected] user [email protected] password password tls_trust_file /etc/ssl/certs/ca-certificates.crt # A second gmail address account gmail2 : gmail from [email protected] user [email protected] password password2 # A freemail service account freemail host smtp.freemail.example from [email protected] user joe.smith password secret # A provider's service account provider host smtp.provider.example # A 126 emali account 126 host smtp.126.com port 25 from [email protected]126.com auth login tls off user [email protected]126.com password password logfile ~/.msmtp.log # Set a default account account default : 126
配置.msmtprc許可權,以下設定是隻給.msmtprc的所屬使用者讀和寫的許可權,其他人沒有任何許可權
$ sudo chmod 600 .msmtprc --設定配置檔案許可權
如果要檢視.msmtprc的所屬使用者,可以通過以下命令檢視,我們可以看到,.msmtprc這個檔案所屬使用者是root使用者,組是root組。
[email protected]:~# ls -l .msmtprc -rw------- 1 root root 251 Feb 17 10:22 .msmtprc
以上設定很重要,使用什麼賬戶去呼叫msmtp,那麼該賬戶就要有對.msmtprc檔案的讀寫許可權。
2.2配置mutt
mutt配置分為兩種,看你是想全域性生效還是某一單一使用者生效。如果是系統全域性設定,修改/etc/Muttrc這個配置檔案;如果使用某個系統使用者,可以需要修改“~/.muttrc”這個檔案。#sudo vim ~/.muttrc set sendmail="/usr/bin/msmtp" set use_from=yes set realname="name" set from[email protected]126.com set envelope_from=yes
我只想給我當前root使用者配置mutt功能,所以使用後者。修改完畢以後也需要檢視這個檔案的讀寫許可權,當前是root賬號要使用mutt功能,那麼這個.muttrc就必須對於root賬戶有讀寫許可權。檢視許可權的方法如下:
[email protected]:~# ls -l .muttrc -rw-r--r-- 1 root root 122 Feb 17 10:27 .muttrc
3.測試smtp的資訊
3.1msmtp測試
測試命令:
測試配置檔案:msmtp -P
測試smtp伺服器:msmtp -S
還有一種方法是在配置msmtp之前就可以進行測試,比如測試163的smtp的命令如下:
[email protected]:~$ msmtp --host=smtp.163.com --serverinfo SMTP server at smtp.163.com (smtp.163.gslb.netease.com [220.181.12.18]), port 25: 163.com Anti-spam GT for Coremail System (163com[20121016]) Capabilities: PIPELINING: Support for command grouping for faster transmission STARTTLS: Support for TLS encryption via the STARTTLS command AUTH: Supported authentication methods: PLAIN LOGIN This server might advertise more or other capabilities when TLS is active.
從返回資訊中我們可以看到,這個smtp是支援TLS的,驗證方式支援 PLAIN 和 LOGIN
3.2測試郵件
命令列輸入:echo "test" |mutt -s "my_first_test" [email protected]126.com
如果是多個收件人,那麼使用空格或者逗號分開即可,測試命令:
echo "test" |mutt -s "my_first_test" [email protected]126.com [email protected]163.com echo "test" |mutt -s "my_first_test" [email protected]126.com,[email protected]163.com
(PS:windows郵件客戶端blat,2014-6-23)
而對於windows下的郵件傳送客戶端blat來說,只能使用逗號分隔多個郵件列表,測試命令如下:
blat -install 163.smpt.com [email protected]163.com --註冊 blat %varlogfile% -to [email protected]126.com,[email protected]163.com" -u "aaa" -pw "aaa" -subject "content" -attach %varlogfile% --傳送
我們上面都是將echo後面的內容作為郵件正文,也可以將郵件的內容寫在一個檔案裡面,然後將這個檔案的內容傳送出去。
touch mail.txt --建立郵件文字 vim mail.txt --編輯文字內容 this is is my first test email --文字內容
傳送郵件,下面的示例是傳送一個標題為linkmail,收件人是[email protected][email protected],附件是 /root/sent ,郵件內容是的mail.txt中的內容。傳送指令碼如下
mutt -s "linkmail" [email protected]126.com [email protected]163.com -a /root/sent </root/mail.txt
4.配置全域性的msmtp和mutt
1.建立/var/log/msmtp.logtouch /var/log/msmtp.log
為了讓所有使用者都能讀寫這個日誌檔案,我們將其許可權設定為777
chmod 777 /var/log/msmtp.log
如果要修改使用者、組、其他的單獨許可權,可以使用以下命令。u:user, g:group, o:other。
chmod u+rwx chmod g+rwx chmod o+rwx
2.建立msmtp的配置檔案/etc/msmtprc
touch /etc/msmtprc
3.配置msmtprc
#Accounts will inherit settings from this section defaults # A 126 emali account 126 host smtp.126.com port 25 from [email protected]126.com auth login tls off user [email protected]126.com password password logfile /var/log/msmtp.log # Set a default account account default : 126
4.配置mutt的全域性配置檔案/etc/Muttrc,在其最後加入以下資訊:
set sendmail="/usr/bin/msmtp" #根據實際情況配置,預設安裝的就是這個地址。 set use_from=yes set realname="name" set from[email protected]126.com set envelope_from=yes
5.測試
在執行測試命令的時候,會自動將郵件副本寫入到“~/sent”當中。
echo "test" |mutt -s "my_first_test" [email protected]126.com
root使用者傳送郵件,郵件被儲存在/root/sent當中,enadmin賬戶傳送郵件,郵件被儲存在/home/enadmin/sent。如果是其他類似於enadmin的使用者,需要首先建立/home/username這個目錄,然後修改這個目錄的許可權。
mkdir /home/nagios
chown -R nagios.nagios /home/nagios
測試mutt傳送郵件,會自動穿件/home/nagios/sent檔案。
6.常見問題:
錯誤1:msmtp: account default not found: no configuration file available
msmtp有bug,必須手動指定對應的配置檔案
更改/etc/Muttrc中set sendmail="/usr/bin/msmtp"為set sendmail="/usr/bin/msmtp -C .msmtprc"
錯誤2:msmtp: GNU SASL: Base 64 coding error in SASL library
遇到Base64 編碼錯誤
更改~/.msmtprc中auth login
為 auth plain
相關推薦
linux 配置郵件傳送功能
1.mutt+msmtp的安裝 預設情況下smokeping傳送郵件使用sendmail,但是sendmail配置起來真心不是一般的麻煩,而且也沒有必要,完全大材小用了,所以我就想用mutt+msmtp的方案來發送告警郵件。 首先安裝mutt和msmtp這兩個
JAVA在不基於XML配置檔案的情況下實現郵件傳送功能(郵箱轟炸)
今天要講的是如何用Java程式碼實現簡單郵件傳送和複雜郵件傳送的功能,這裡我使用的是QQ郵箱,你們也可以嘗試使用其他的郵箱哦~ 想實現郵件傳送功能首先郵箱賬號必須要開啟 SMTP 服務,在網頁登入郵箱後點擊設定→賬戶然後下拉,如圖 &nb
jenkins配置郵件通知功能以及破解管理員密碼
Jenkins 持續集成 CentOS7 筆記內容:jenkins配置郵件通知功能以及破解管理員密碼筆記日期:2018-02-27 26.6 jenkins郵件設置 26.7 插件email-ext 26.8 破解jenkins管理員密碼 26.6 jenkins郵件設置 打開Jenkins
SpringBoot配置Email傳送功能
SpringBoot配置Email傳送功能 相信使用過Spring的眾多開發者都知道Spring提供了非常好用的 JavaMailSender介面實現郵件傳送。在Spring Boot的Starter模組中也為此提供了自動化配置。下面通過例項看看如何在Spring B
利用EasySQLMAIL實現自動資料提取和郵件傳送功能 (1)
轉自:http://blog.sina.com.cn/s/blog_1549483b70102wioy.html 最近幾個月每天都在發通報。過程很繁瑣,動作很機械,整個人就是一部機器,執行SQL,填Excel,發郵件。所以想把日報自動化了。最後找到一個叫EasySQLMAIL的軟體,試了一下,很簡單也很方便
使用java實現郵件傳送功能(已封裝)
現如今,用郵件傳送訊息的人越來越少,可是並不影響我們學習java。 以下給大家帶來自己寫的封裝類,可以直接使用。 首先,需要jar包: 普通javaweb專案:mail.jar maven管理專案: <dependency> &
配置郵件報警功能(指令碼方式)
配置郵件報警功能 1.在 zabbix 伺服器上安裝 mail 服務 : yum install mailx -y vi /etc/mail.rc #注意有些郵箱需要開啟客戶端授權碼進行第三方登入 #末尾新增 zabbix 傳送告警資訊郵箱 set [email protected] se
配置郵件報警功能(腳本方式)
mes 正常 xxxxxx chown script login mail ech meta 配置郵件報警功能 1.在 zabbix 服務器上安裝 mail 服務 : yum install mailx -y vi /etc/mail.rc #註意有些郵箱需要開啟客戶端授
McAfee阻止郵件傳送功能
自己寫的郵件傳送功能,在本地機器上可以傳送,但是放到伺服器上面之後就不能傳送了,捕獲到的異常是“以一個訪問許可權不允許的方式做了一個訪問套接字的嘗試”,找了很久,終於發現是被McAfee給阻止了,下面是解決辦法: 1、滑鼠右鍵單擊螢幕右下角McAfee圖示 2、單擊“VirusScan控制檯“ 3、在彈
SpringBoot快速實現郵件傳送功能-百測百靈
2018年11月10日星期六 隨筆 筆記 springboot整合郵件傳送 一、匯入依賴包 org.springframework.boot spring-boot-starter-mail 二、開啟服務(一個即可) 三、傳送簡訊:配置郵件客戶端到1069
JavaMail java郵件開發_在Web應用中增加郵件傳送功能
建立一個web專案 在lib下新增兩個jar包,mail.jar和之前寫的JavaMail02.jar SendMailServlet: package com.yuming.servlet; import java.io.IOException; import javax.se
.NET開發郵件傳送功能的全面教程(含郵件元件原始碼)
今天,給大家分享的是如何在.NET平臺中開發“郵件傳送”功能。在網上搜的到的各種資料一般都介紹的比較簡單,那今天我想比較細的整理介紹下: 1)郵件基礎理論知識 2)郵件傳送相關.NET類庫 3)介紹我開發的一個傳送郵件的小元件(MailHelper) 4)MailHelper元件的一個示例以及幾種
JavaMail實現郵件傳送功能
最近的專案要使用javamail進行郵件傳送,寫這篇部落格總結下 傳送簡單的郵件 在進行郵件傳送之前要引入javamail的Maven依賴 dependency> <groupId>javamail</groupId> &l
十:搭建Jenkins+Jmeter+Ant自動化整合環境(4)---新增郵件傳送功能
1、在系統設定中找到Jenkins Locaction項填入Jenkins URL和系統管理員郵件地址,系統管理員郵件地址一定要配置,否則發不了郵件通知。因為郵件通知都是由系統管理員的郵箱發出來的2、按照上圖配置的同時,要去自己的開啟SMTP服務,並生成授權碼3、1-2步完成
結合ABP原始碼實現郵件傳送功能
1. 前言 最近pm臨時提出了多種郵件驗證操作的需求,因為一時間也沒有找到好的郵件收發元件,也抱著研究ABP的心態,就花了幾小時時間探究了一下ABP中關於Email的處理和操作。其實郵件操作大多大同小異,這次只是希望介紹一下ABP中實現功能的程式碼結構而已,以下是具體過程 演示的ABP程式碼版本為
linux 配置mailx傳送到外網郵箱
1、安裝sendmail伺服器 yum install mailx 2、修改配置 vim /etc/mail.rc ## 在尾部新增 set from="18765262***@139.com" --
VC MFC 郵件傳送功能的實現
http://www.naughter.com/smtp.html CPJNSMTP目前是寫的比較完善的MFC程式,目前它原始碼最新是支援VS2015。 這個庫支援多國語言,傳送郵件不會出現亂碼。 並且支援SSL驗證,筆者已在QQ和163郵箱測通過,注意QQ郵箱設定第三方收
實現簡單的郵件傳送功能
1 建立路由 Route::get('/',function()){ //查詢Id為1的使用者 $user=\App\User::find(1); //to方法後面接的是郵件地址;send()方法接受的是預設實體類,該類可以通過p
java 建立郵件傳送功能
<!-- 郵件服務的jar包 --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version&g
Python 實現郵件傳送功能(初級)
在我們日常專案中,會經常使用到郵件的傳送功能,如何利用Python傳送郵件也是一項必備的技能。本文主要講述利用Python來發送郵件的一些基本操作。 本章主要包含知識點: 郵件傳送原理簡述即常用smtp郵箱伺服器 傳送文字郵件 傳送html郵件 我們一般傳送郵件時,用到的代理有outlook,