一般在contos5.幾的版本裝的一般是mailx-8的版本,但是這個版本太低,好像是不支援smtp,所以解除安裝了他,再裝上新版本mailx-12
有時為了達到某種需求統一使用某一smtp伺服器作為傳送郵件報告。
通常的做法都是,關閉本機的sendmail服務,修改/etc/mail.rc,增加一下類似兩行,指定外部的smtp伺服器位址、帳號密碼等。
# vi /etc/mail.rc
set [email protected] smtp=smtp.qq.com
set smtp-auth-user=demo smtp-auth-password=ithf smtp-auth=login
然後通過命令來傳送郵件
echo hello word | mail -s "demo title" [email protected]
可是發現在rhel6執行是沒有問題,在rhel5下,mail命令始終是呼叫本地的sendmail服務來傳送郵件的。到底rhel6和rhel5下的mail和mailx又有著什麼關係呢?
rhel6下
mail 鏈結到 mailx 命令,mailx版本為12.4
也就是說,在rhel6\5下,執行mail 和mailx,實際上都是乙個命令,而mail版本不同,導致了rhel5下mail命令無法呼叫外部smtp伺服器。
安裝mailx新版本可解決此問題。
同時安裝說明也說了,如果make install 出錯,則換為 make install ucbinstall=/usr/bin/install命令試試。
命令:# tar jxvf mailx-12.4.tar.bz2
# cd mailx-12.4
# make
# make install ucbinstall=/usr/bin/install
然後在/etc/nail.rc的最後加上以一幾句
set smtp=smtp.163.com
set smtp-auth-password=1233234
set smtp-auth=login
然後用測試下
mailx -v -s "tes88t" [email protected] < a.txt
在php的配置檔案php.ini中的一行原始為
;sendmail_path =
我們改一下,去掉前面的分號,來呼叫剛剛安裝好的mailx(關於mailx的路徑可以用命令獲得:which mailx )
sendmail_path = /usr/local/bin/mailx -t -i
(一般以前人們都用sendmail來做的,但是在linux下sendmail太麻煩,sendmail_path =/usr/sbin/sendmail -t -i)
然後在php編寫乙個指令碼測試一下傳送郵件的
<?php
header("content-type:text/html;charset=utf-8");
//-----
//$conn = new mysqli('localhost', 'banzhang', '13233697713', 'myclass');
//$result = $conn->query("set names 'utf8'");
$to = "[email protected]";
$title = "the title mesg";
$mseg = "the mesg is : haha";
$fujia = "fu jia de";
if( mail($to, $title, $mseg, $fujia) )
else
?>
linux郵件傳送給外部郵箱
系統自帶的mail命令預設不能向外部郵箱傳送郵件,解決辦法如下 1 配置 smtp 和傳送郵件的賬戶 vi etc mail.rc 在最後加入兩行 兩個set,每個set裡面的項不可換行寫 set from xiekunliang xkl.com smtp smtp.xkl.com set smtp...
c 用GMAIL郵箱傳送郵件
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...
zabbix使用外部郵箱賬號傳送報警郵件設定
一 關閉sendmail或者postfix service sendmail stop 關閉 chkconfig sendmail off 禁止開機啟動 service postfix stop chkconfig postfix off 備註 使用外部郵箱賬號時,不需要啟動sendmail或者po...