程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 如何使用PHP發送郵件

如何使用PHP發送郵件

編輯:關於PHP編程

PHP發送郵件的小程序很簡單,不過有些需要注意的地方。先上代碼:

<?php    
    $to = "[email protected]";  
	
	$user = "Gonn";
	$date = date("Y年m月d日");
	
	$headers  = 'MIME-Version: 1.0' . "rn";
	$headers .= 'Content-type: text/html; charset=utf-8' . "rn";
	$headers .= "To: $to rn"; 
	$headers .= "Cc: [email protected] rn"; 
	$headers .= 'From: [email protected]' . "rn";
    $subject = "珠海生活圈";  
	$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
 
    $content = '親愛的'."$user".':'.'<br />';  
	$content .= '<br />';  
	$content .= "感謝您注冊珠海生活圈,精彩的生活從珠海生活圈開始!".'<br />';  
    $content .= "在珠海生活圈,您可以:".'<br />';  
	$content .= "查詢珠海的商家情況,方便您生活與娛樂。".'<br />';  
	$content .= "了解最近珠海舉行的活動,讓您的生活更加豐富。".'<br />';  
	$content .= "浏覽新聞熱點,擴展知識面。".'<br />';  
	$content .= '<br />';  
	$content .= "珠海生活圈 -- 為建成珠海最大的商家數據庫而不斷努力著。 ".'<a href="http://www.zhuhailife.net" target="_blank">www.zhuhailife.net</a>'.'<br />'; 
	$content .= '<br />';  
	$content .= "珠海生活圈團隊".'<br />'; 
	$content .= "$date".'<br />';  
    $result = mail($to, $subject, $content, $headers);  
	
	if($result)
	{
		echo '郵件發送成功!';
	}
	
?>  

有幾個需要注意的地方。如果上面的代碼沒有 $subject = "=?UTF-8?B?".base64_encode($subject)."?="; 這麼一句,你會發現郵件的標題是亂碼,而郵件正文卻是正確的。郵件頭需要先用函數base64_encode(),就是使用 MIME base64 對數據進行編碼。標題字符串前加編碼類型例如: =?UTF-8?B?。

還有郵件的類型設置為$headers = 'MIME-Version: 1.0' . "rn";。

摘wiki的解釋:多用途互聯網郵件擴展(MIME,Multipurpose Internet Mail Extensions)是一個互聯網標准,它擴展了電子郵件標准,使其能夠支持非ASCII字符、二進制格式附件等多種格式的郵件消息。這個標准被定義在RFC 2045、RFC 2046、RFC 2047、RFC 2048、RFC 2049等RFC中。 由RFC 822轉變而來的RFC 2822,規定電子郵件標准並不允許在郵件消息中使用7位ASCII字符集以外的字符。正因如此,一些非英語字符消息和二進制文件,圖像,聲音等非文字消息都不能在電子郵件中傳輸。MIME規定了用於表示各種各樣的數據類型的符號化方法。 此外,在萬維網中使用的HTTP協議中也使用了MIME的框架。

MIME是通過標准化電子郵件報文的頭部的附加領域(fields)而實現的;這些頭部的附加領域,描述新的報文類型的內容和組織形式。

$headers .= 'Content-type: text/html; charset=utf-8' . "rn"; 當制定類型為 html的時候,郵件正文就可以使用 HTML 的標簽了。

幾種常見的類型:

  • text/plain(純文本)
  • text/html(HTML文檔)
  • application/xhtml+xml(XHTML文檔)
  • image/jpeg(JPEG圖像)【PHP中為:image/pjpeg】
  • image/gif(GIF圖像)
  • image/png(PNG圖像)【PHP中為:image/x-png】
  • video/mpeg(MPEG動畫)
  • application/pdf(PDF文檔)
  • application/msword(Microsoft Word文件)
  • application/octet-stream(任意的二進制數據)
  • application/x-www-form-urlencoded(使用HTTP的POST方法提交的表單)
  • multipart/form-data(同上,但主要用於表單提交時伴隨文件上傳的場合)

此外,尚未被接受為正式數據類型的subtype,可以使用x-開始的獨立名稱(例如application/x-gzip)。vnd-開始的固有名稱也可以使用(例:application/vnd.ms-excel)。

parameter可以用來指定附加的信息,更多情況下是用於指定text/plain和text/htm等的文字編碼方式的charset參數。MIME根據type制定了默認的subtype,當客戶端不能確定消息的subtype的情況下,消息被看作默認的subtype進行處理。Text默認是text/plain,Application默認是application/octet-stream而Multipart默認情況下被看作multipart/mixed。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved