PHP中常用的發送郵件方法
來源:程序員人生 發布時間:2013-12-14 14:26:17 閱讀次數:3014次
下面總結了三種在php實現郵件發送的實現代碼,包括有phpmailer,mail()函數,JMail()這三種哦,有需要的朋友可參考一下。
利用php mail函數發送
使用mail()函數發送郵件,就必須要有一臺不需要驗證的SMTP服務器,這樣的話配置工作會多一點,但是使用的時候就比較省事了,幾行代碼就可以,代碼如下:
- $to = "test@163.com";
- $subject = "Test";
- $message = "This is a test mail!";
- mail($to,$subject,$message);
JMail發送郵件
賬號必須有smtp發信權限,最好設置$jmail->silent=true,不讓jmail自行拋出錯誤信息,常用的有網易、sogou、QQ、GMail郵箱,代碼如下:
- <?php
- $jmail = new COM('JMail.Message') or die('無法調用Jmail組件');
- $jmail->silent = true;
- $jmail->charset = 'gb2312';
- $jmail->From = 'web535000@163.com';
- $jmail->FromName = 'BoboTest';
- $jmail->AddRecipient('abc1@163.com');
-
-
- $jmail->Subject = 'email test.';
- $jmail->Body = 'this is test email.';
- $jmail->MailServerUserName = 'web535000@163.com';
- $jmail->MailServerPassword = '123456';
- try{
- $email = $jmail->Send('smtp.163.com');
- if($email) echo '發送成功';
- else echo '發送失敗';
- } catch (Exception $e){
- echo $e->getMessage();
- }
- ?>
發信賬號必須有smtp發信權限,對于網易的郵箱,06年后注冊的新郵箱好像不行,早期的倒可以,還有,最好設置$jmail->silent=true,不讓jmail自行拋出錯誤信息,在設置正常的時候,頻繁發信會出現一些錯誤,據我估計應該是發信服務器設置了發信時間間隔。
phpmailer發送郵件,這個是相當簡單的也是常用的,代碼如下:
- function postmail_jiucool_com($to,$subject = "",$body = ""){
-
-
-
- error_reporting(E_STRICT);
- date_default_timezone_set("Asia/Shanghai");
- require_once('class.phpmailer.php');
- include("class.smtp.php");
- $mail = new PHPMailer();
- $body = eregi_replace("[]",'',$body);
- $mail->CharSet ="UTF-8";
- $mail->IsSMTP();
- $mail->SMTPDebug = 1;
-
-
- $mail->SMTPAuth = true;
- $mail->SMTPSecure = "ssl";
- $mail->Host = "smtp.googlemail.com";
- $mail->Port = 465;
- $mail->Username = "SMTP服務器用戶名";
- $mail->Password = "SMTP服務器密碼";
- $mail->SetFrom('發件人地址,如admin#jiucool.com #換成@', '發件人名稱');
- $mail->AddReplyTo("郵件回復地址,如admin#jiucool.com #換成@","郵件回復人的名稱");
- $mail->Subject = $subject;
- $mail->AltBody = "To view the message, please use an HTML compatible email viewer! - From www.111cn.net";
- $mail->MsgHTML($body);
- $address = $to;
- $mail->AddAddress($address, "收件人名稱");
-
-
- if(!$mail->Send()) {
- echo "Mailer Error: " . $mail->ErrorInfo;
- } else {
- echo "Message sent!恭喜,郵件發送成功!";
- }
- }
PHPMailer的主要功能特點:
1.支持郵件 s/mime加密的數字簽名
2.支持郵件多個 TOs, CCs, BCCs and REPLY-TOs
3.可以工作在任何服務器平臺,所以不用擔心WIN平臺無法發送郵件的問題的
4.支持文本/HTML格式郵件
5.可以嵌入image圖像
6.對于郵件客戶端不支持HTML閱讀的進行支持
7.功能強大的發送郵件調試功能debug
8.自定義郵件header
9.冗余SMTP服務器支持
10.支持8bit, base64, binary, and quoted-printable 編碼
11.文字自動換行
12.支持多附件發送功能
13.支持SMTP服務器驗證功能
14.在Sendmail, qmail, Postfix, Gmail, Imail, Exchange 等平臺測試成功
15.提供的下載文件中,包括內容詳細的說明文檔及示例說明,所以不用擔心難于上手的問題!
16.PHPMailer 非常小巧、簡單、方便、快捷
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈