PHP內置的mail函數使用起來不夠方便,另外受其他語言的影響,博主更偏好面向對象的包管理模式,因此phpmailer成為了我用PHP發送郵件的首選,這裡分享給大家。 ...
phpmailer發送郵件
PHP內置的mail函數使用起來不夠方便,另外受其他語言的影響,博主更偏好面向對象的包管理模式,因此phpmailer成為了我用PHP發送郵件的首選,這裡分享給大家。
庫導入
這裡使用composer進行包管理,以下是json文件:
{
"name": "",
"description": "test the mail",
"require": {
"PHPMailer/PHPMailer":"*"
}
}
使用樣例
<?php
// include("./vendor/autoload.php");
include("./vendor/phpmailer/phpmailer/class.phpmailer.php");
include("./vendor/phpmailer/phpmailer/class.smtp.php");
function postmail($to, $subject="", $body="")
{
$mail = new PHPMailer(); #創建PHPMailer實例
$mail->CharSet = 'utf-8'; #設置編碼形式,預設為iso-8859-1
$mail->isSMTP(); #表示使用SMTP服務
$mail->SMTPAuth = true; #使用SMTP認證
$mail->Host = 'smtp.163.com'; #SMTP主機名,這裡以163為例
$mail->Username = "[email protected]"; #SMTP服務的用戶名
$mail->Password = "xxxx"; #SMTP用戶的密碼(現在多採用授權碼的形式)
#下麵的部分是用戶可見的
$mail->setFrom("[email protected]","userName"); #第二個參數,用戶看到的發送方的姓名,是可以隨便改的
$mail->Subject = $subject; #郵件主題
$mail->msgHTML($body); #郵件內容,這裡採用HTML形式
$mail->addAddress($to,''); #地址,第二個參數是接受者,發送對象名為''時,163的測試結果是SMTP服務商會把它改成‘我’
$mail->addAttachment('./php.png'); #添加附件
#發送
if($mail->send())
{
echo "郵件發送成功";
}else
{
echo "郵件發送失敗";
}
}
postmail('[email protected]',"測試","你好嗎");
?>
測試結果
博主使用163作為發送方,發送給QQ郵箱、163郵箱均通過測試。