不同類型的郵箱發送郵件的方式也是不同的。
下面我們就先給大家舉例介紹qq郵箱開啟發送郵件服務的方法。
首先我們登錄qq郵箱,打開設置,選擇帳戶。
然后在帳戶下,找到如下所示的開啟服務部分。
開啟服務中,前兩個選項均可實現郵件發送服務。點擊開啟,會出現驗證提示。
確認驗證,成功開啟POP3/SMTP服務后,就會出現以下授權碼。
那么此授權碼就可以用於PHP實現郵件發送的開發方法中。
注: 每次開啟生成的授權碼都會不同,安全性較高。
實現發送郵件的php代碼如下:
<?php /*發送郵件方法 *@param $to:接收者 $title:標題 $content:郵件內容 *@return bool true:發送成功 false:發送失敗 */ function sendMail($to,$title,$content) { // 這個PHPMailer 就是之前從 Github上下載下來的那個項目 require './PHPMailer/PHPMailerAutoload.php'; $mail = new PHPMailer; //使用smtp鑒權方式發送郵件 $mail->isSMTP(); //smtp需要鑒權 這個必須是true $mail->SMTPAuth = true; // qq 郵箱的 smtp服務器地址,這里當然也可以寫其他的 smtp服務器地址 $mail->Host = 'smtp.qq.com'; //smtp登錄的賬號 這里填入字符串格式的qq號即可 $mail->Username = '2839247368@qq.com'; // 這個就是之前得到的授權碼,一共16位 $mail->Password = 'xccemvofmwcvdgjg'; $mail->setFrom('2839247368@qq.com', '你的主管'); // $to 為收件人的郵箱地址,如果想一次性發送向多個郵箱地址,則只需要將下面這個方法多次調用即可 $mail->addAddress($to); // 該郵件的主題 $mail->Subject = $title; // 該郵件的正文內容 $mail->Body = $content; // 使用 send() 方法發送郵件 if(!$mail->send()) { return '發送失敗: ' . $mail->ErrorInfo; } else { return "發送成功"; } } // 調用發送方法,並在頁面上輸出發送郵件的狀態 var_dump(sendMail('358179668@qq.com','會議主題','今天下午開會'));
此方法中,首先我們引入了PHPMailer中的PHPMailerAutoload.php這個文件。PHPMailer是一個用來發送電子郵件的函數包,PHPMailerAutoload.php則是一個自動加載的文件,方便快捷。
那么PHP實現郵件發送的功能,就可以通過PHPMailerAutoload.php來實現。在引入PHPMailerAutoload.php后,我們需要對其中的PHPMailer類進行實例化。
最后就可以直接調用PHPMailer類中的相關方法來實現郵件發送功能。
$mail->isSMTP()則表示使用SMTP服務;
$mail->SMTPAuth設置是否使用身份驗證(必須為true);
$mail->Host設置發送方的SMTP服務器地址;
$mail->Username設置發送方的qq郵箱用戶名;
$mail->Password 設置發送方的郵箱密碼,注意用qq郵箱這里填寫的是“授權密碼”而不是郵箱的登錄密碼!
$mail->setFrom()用來設置發件人信息,如郵件格式說明中的發件人,這里會顯示為send_user_name(xxxx@qq.com),send_user_name是當做名字顯示。
$mail->addAddress()用來設置收件人的郵箱地址。
$mail->Subject 設置郵件標題;
$mail->Body 設置郵件正文。
最后使用 send() 方法發送郵件,並判斷郵件是否發送成功,失敗則輸出錯誤信息$mail->ErrorInfo。
注:PHPMailer中class.phpmailer.php是主文件,用來實現具體功能,class.smtp.php是使用smtp需要的文件。
查看郵件,發送成功。