linux下用mail發送郵件

利用外部郵箱發送郵件的方法 html

 

bin/mail會默認使用本地sendmail發送郵件,這樣要求本地的機器必須安裝和啓動Sendmail服務,配置很麻煩,而且會帶來沒必要要的

資源佔用。而經過改動配置文件可以使用外部SMTPserver,可以達到不使用sendmail而用外部的smtpserver發送郵件的目的:

改動/etc/nail.rc (/etc/mail.rc)

set from=fromUser@domain.com smtp=smtp.domain.comset smtp-auth-user=username smtp-auth-password=passwordset smtp-auth=login
說明:

from是發送的郵件地址

smtp是發生的外部smtpserver的地址

smtp-auth-user是外部smtpserver認證的username

smtp-auth-password是外部smtpserver認證的用戶密碼

smtp-auth是郵件認證的方式

配置成功後,就可以使用了

可以發送一封郵件測試一下:

mail -s "test" user@sohu.com <content.txt 當中-s後面的是郵件標題,user@sohu.com是收件人地址,content.txt裏面是郵件正文linux

 

以上內容轉自: http://www.diybl.com/course/6_system/linux/Linuxjs/20091119/182839.htmlweb

 

我試了一把,2006年以前註冊的163郵箱可以的,tom郵箱都是可以的shell

 

 

postfix 數據庫

postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件,想成爲sendmail替代產品,它試圖成爲更快、更easy管理、更安全的MTA, 編程

  安裝:安全

  rpm -ivh /mnt/cdrom/Server/postfix-2.3.3-2.i386.rpm postfix主程序網絡

  rpm -ivh /mnt/cdrom/Server/postfix-pflogsumm-2.3.3-2.i386.rpm postfix日誌工具dom

  rpm -ivh /mnt/cdrom/Server/dovecot-1.0-1.2.rc15.el5.i386.rpm POP程序工具

  首先查看是否安裝過postfix服務,用rpm –qa |grep postfix ,

  實例講解Postfix服務配置-網頁教學網

  我這裏是裝過的,在這裏先用rpm –e postfix刪除postfix,而後再安裝

  實例講解Postfix服務配置-網頁教學網

  相同,需查看是否有安裝過POP,這個服務用的是dovecotserver,這裏我也裝過,刪除後又一次安裝就能夠

  實例講解Postfix服務配置-網頁教學網

  實例講解Postfix服務配置-網頁教學網

  安裝後是否是就可以直接執行了呢?

  實例講解Postfix服務配置-網頁教學網

顯然是不行的,它的一些必要的參數沒有生效是不能執行的,如下改動幾個常用的選項:

  Hostname 郵件主機的FQDN

  Mydomain 地機郵件主機所在的域

  Myorigin 本地郵件發送時的域名

  Mydestinatin 本地郵件接收是域名

  Inet_interface 郵件主機監聽的port號

  Mynetworks 本地郵件server信賴的網絡

  Relay_domain 本地郵件server傳遞的域

  Smtpd_banner 登陸時顯示的標題,最好是把詳細的版本給隱藏起來(添加安全性)

  實例講解Postfix服務配置-網頁教學網

  實例講解Postfix服務配置-網頁教學網

  實例講解Postfix服務配置-網頁教學網

  實例講解Postfix服務配置-網頁教學網

  clip_image020

  實例講解Postfix服務配置-網頁教學網

  實例講解Postfix服務配置-網頁教學網

  實例講解Postfix服務配置-網頁教學網

這樣就完畢了一個最主要的smtp的server了,固然還要作很是多事情,如限制收、發郵人,別名,虛擬域等等,如下從新啓動看看效果怎樣

  實例講解Postfix服務配置-網頁教學網

  固然不要忘記了改動咱們的POP服務設置,直接改動/etc/dovecot.conf ,把#protocols = imap imaps pop3 pop3s前面的#去掉就能夠,從新啓動看看:

  實例講解Postfix服務配置-網頁教學網

  實例講解Postfix服務配置-網頁教學網

  而後用咱們最熟悉的Outlook登陸,

  實例講解Postfix服務配置-網頁教學網

  奇怪了?不會是postfix設置錯了吧?先看看日誌:

  Tail –f /var/log/maillog

  實例講解Postfix服務配置-網頁教學網

  出現這個錯就是dovecot的配置問題了?明明曾經直接改動dovecot支持的郵件接收方法便可了,此次爲何不行呢?試試telnet wudionline.com 25和telnet wudionline.com 110 看看

  實例講解Postfix服務配置-網頁教學網

  實例講解Postfix服務配置-網頁教學網

也都沒問題啊,想一想前兩天裝的時候這樣配置明明是可以在outlook登陸的啊,但前兩天是這樣的狀況:

  可以用outlook登陸,但outlook接收不到郵件,可以發郵件,收郵件可以在/var/spool/mail裏看到,就是接收不到本地 outlook來,經網上參考,最好把#mail_location = mbox:~/mail:INBOX=/var/mail/%u前的#去掉,就可以在本地收郵件了,經分析那裏因爲dovecot設置的郵件接收路徑不 對,因此改一點就OK了,但此次是登陸不上去啊,網上找了半天也沒有答案,因而試試把 #mail_location = mbox:~/mail:INBOX=/var/mail/%u,前的#去掉,

  實例講解Postfix服務配置-網頁教學網

  從新啓動看看

  實例講解Postfix服務配置-網頁教學網

  真的登陸成功了。試了一下收、發郵件都沒有問題了。

  平時由於root帳號默認接收系統各類錯誤日誌,但是用root登陸我的認爲不太方便,因而想用一個普通用戶也接收發給root的郵件,看了一下配置幫助文檔,按這種格式就可以用別名的方式接收其餘用戶的郵件:

  root: wuzh

  固然得寫入/etc/aliases文件中,這樣當系統出錯錯誤或其餘的事件日誌的時候,就會把日誌附加一份發給wuzh這個普通用戶了這個就不截圖了:),改了事後直接發一封郵件給root,而後在wuzh這個帳號裏就可以看到郵件原文了

  另外一個功能:虛擬域利用一個虛擬域名來表明實際域來收發郵件(以我這種低水平來講,我感受我用不上,它僅僅能用於內部交流,假設與外界收發郵 件的時候虛擬域就沒法在廣域網上實行解析,也就是根本就接收不到郵件,)如圖:我把個人域名wudionline.com改爲 wudionline.net發信給個人還有一個郵箱

  實例講解Postfix服務配置-網頁教學網

  發送人地址是變了,可是要回復那就難了…….看

  實例講解Postfix服務配置-網頁教學網

  他的優勢就是隱藏本身的域名,好讓別人找不到他(假設操心別人找他的話….),固然還有其餘的優勢的,個人水平菜還不知道怎麼用.等學會了再來更新……

  這裏仍是演示一下怎樣設置吧:

  在main.cf裏增長virtual_maps = hash:/etc/postfix/virtual, 這個是虛擬域的位置,還要往這個文件中增長內容,格式爲:

  Wudionline.net anything

  wuzh@wudionline.net wuzh

  以後,用postmap命令生成虛擬域數據庫:

  postmap /etc/postfix/virtual

  前面是虛擬用戶,後面是系統用戶,事實上收郵件仍是系統用戶收發的,僅僅是贊成虛擬用戶對其操做而已

 

postfix部分轉自:http://www.webjx.com/server/linux-14673.html

 

 

本身主動發送郵件的腳本

 

記得在學校的時候,有一次和老師討論問題,有一些不明確的地方,他說,你可以編個程序驗證一下。我差點沒有暈過去。因爲那時的我很是懼怕編程。只是還好,有很是多事情咱們不需要編程就可以實現。

比方近期,我開始厭煩在桌子上面的兩條電腦之間轉來轉去,因而我打算寫一小段shell腳本,當linux/unix如下的工做完畢的時候,系統本身主動發送一個郵件到windwos如下通知我。

在Linux和Unix如下發送郵件很方便,假設僅僅是要發送一個消息,那麼需要的命令就更簡單了,僅僅只是不一樣的系統郵件server命令稍有不一樣。對於我,經常工做的電腦是HP的C8000工做站,它的系統是HP-UX,另外一臺也是HP,安裝的是redhat AS系統。

HP-UX的郵件程序需要在terminal如下輸入:mail命令,而後進去寫信,而redhat的郵件發送程序就比較方便,僅僅要一條命令就可以指定主題、附件、內容:

echo "Content:The work is done" | mail -s "This is subject" mwang@veryword.com

如下這一段腳本就是經過某一個文件是否已經生成進行推斷,假設生成了就發送通知郵件到指定郵箱。不然就每30秒鐘檢查一次,有完畢的就發送通知郵件,有沒有完畢的就休眠後繼續循環,一直到全部完畢再退出。

#!/bin/csh 
set arrayA = ($*)
set i=1
set SysInfo = `uname`
set arrayB = ()
while ( $i <= $#arrayA )
if ( -f ${arrayA[$i]}/result_data.txt) then
if ($SysInfo == HP-UX ) then
mail mwang@veryword.com << !
Subject:'${arrayA[$i]} is finished'
'${arrayA[$i]} is finished'
.
!
else
echo "${arrayA[$i]} is finished" | mail -s "${arrayA[$i]} is finished" mwang@veryword.com
endif
echo "${arrayA[$i]} is finished, a mail is sent to mwang"
else
set arrayB = ( $arrayB $arrayA[$i] )
endif

if ( ( $i >= $#arrayA ) && $#arrayB) then
set arrayA = ($arrayB)
echo "$arrayA is under calculation, please wait. Now: " `date`
set arrayB = ()
set i = 0
sleep 30
endif
@ i++

end

轉自 http://www.veryword.com/2008/11/10/auto-send-mail-script.html
相關文章
相關標籤/搜索