linux如何傳送電子郵件

2021-09-30 10:16:16 字數 1283 閱讀 6360

使用linux時,有時我們想發郵件給朋友或同事,可不可以通過命令列直接發呢?

想通過linux監控**或者系統狀況並自動報警,如何使用指令碼發出郵件給外部郵箱呢?

不需要註冊公網網域名稱和mx記錄,即不需要架設公網郵件伺服器,我們仍然可以達到以上目的。我是通過linux自帶的mailx工具來解決,只需要配置mailx使用公網郵箱來發郵件即可。

centos5自帶的mailx是8.1版本的,不支援配置外部公網郵箱,必須公升級到最新版本12.4。

可以使用rpm -qa | grep mailx檢視系統自帶的mailx版本。使用wget

mailx-12.4.tar.bz2 (271.5 kb) 。

# tar jxvf mailx-12.4.tar.bz2  

# cd mailx-12.4  

# make  

# make install ucbinstall=/usr/bin/install 

如此即安裝完畢。這時,如果沒有解除安裝舊版本的mailx,是不能直接使用mailx或mail命令的,否則使用的仍然是舊版mailx。新版mailx在解壓後的mailx-12.4資料夾裡面,即呼叫路徑為:解壓路徑/mailx-12.4/mailx。例如我解壓在/root/下,那我要使用新版mailx並檢視版本號,則可以用/root/mailx-12.4/mailx  -v 檢視。

為使得新版mailx更加易用,我們可以利用alias和.bashrc將mail命令指向該新版mailx:

新增一行:alias mail='/root/mailx-12.4/mailx'

即時生效:source /root/.bashrc

這時的mail命令即代表新版mailx。

接下來配置新版mailx使用外部郵箱傳送郵件:

新增兩行:

set [email protected] smtp=smtp.qq.com

set smtp-auth-user=myname smtp-auth-password=password smtp-auth=login

第一行指明所使用的外部郵箱及smtp伺服器,第二行指明外部郵箱使用的使用者名稱和密碼。

儲存,並重啟sendmail服務(service sendmail restart)。

到此可以在命令列直接發郵件到外部郵箱了:

#echo 'hello!' | mail -s "hello test" [email protected]

到外部郵箱一看,郵件即刻收到了。

--------------------------------

present  by  dylan.

傳送電子郵件

傳送電子郵件 param emaillist 的物件 param data 傳送的資料 throws ioexception throws addres ception private void sendemail listemaillist,listdata throws ioexception,...

Python傳送電子郵件

源 sendemail.py import smtplib from email.mime.text import mimetext msg mimetext the body of the email is here 這裡是你的信件中的內容 msg from ltoddy 163.com 這裡是傳...

PHP 傳送電子郵件

php 傳送電子郵件 php 允許您從指令碼直接傳送電子郵件。php mail 函式 php mail 函式用於從指令碼中傳送電子郵件。語法 mail to,subject,message,headers,parameters to 必需。規定 email 接收者。subject 必需。規定 ema...