/ 網站開發

2023年03月15日 90

PHPMailer 透過 SMTP 主機發信


PHPMailer 是一款強大的 PHP 發信套件
由於PHP內建的 mail() 函式經常發到收件方變成垃圾信
尋思更好的解法,拜了Google大神找到這套好用的套件

現在租賃的虛擬主機幾乎都有內建Mail Server的服務
透過帳密與 Mail Server請求權限再發信,似乎可以更有效解決被擋信或變成垃圾信的問題
記錄一下使用的語法,方便下次需要時查找參考

<?php
# sendEmail
	function sendEmail($from, $email, $toEmail, $subject, $content) {
		// phpmailer path
		include_once('class.phpmailer.php');

		$PHPMailer = new PHPMailer();
		$PHPMailer->isSMTP();	// 設定發送引擎
		$PHPMailer->SMTPAuth = true;
		// $PHPMailer->SMTPDebug = 3;
		// $PHPMailer->Debugoutput = 'html';

		$PHPMailer->SMTPSecure = 'ssl';
		$PHPMailer->Port = 465;
		$PHPMailer->Host = 'mail.server';  // 輸入 mail server 位置
		$PHPMailer->Username = 'account';  // 帳號
		$PHPMailer->Password = 'password'; // 密碼

		$PHPMailer->SMTPOptions = array(
		    'ssl' => array(
		        'verify_peer' => false,
		        'verify_peer_name' => false,
		        'allow_self_signed' => true
		    )
		);

		$PHPMailer->CharSet = 'UTF-8';
		$PHPMailer->From = $email;	// 設定發信信箱
		$PHPMailer->FromName = $from;	// 設定發信者
		$PHPMailer->AddAddress($toEmail, 'user name');	//設定收件者
		$PHPMailer->AddReplyTo($PHPMailer->From, $PHPMailer->FromName);	//設定收信者回覆位址
		$PHPMailer->IsHTML(true);	//設定使用Html內容
		$PHPMailer->Subject = $subject;	// 設定主旨
		$PHPMailer->AltBody = strip_tags($content);	// 設定內容
		$PHPMailer->Body = $content;

		return $PHPMailer->Send();
	}


參考連結:https://sourceforge.net/projects/phpmailer.mirror/

標籤: #PHP