使用時需先inlcude “phpmailer.zip” 內的檔案
下載點: 下載點
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'vendor/autoload.php'; $mail = new PHPMailer(true); // $mail->SMTPDebug = 2; //如打開會顯示錯誤信息 $mail->isSMTP(); $mail->Host = "smtp.host"; //設定SMTP $mail->Port = 25; //465 = ssl 587 = tls $mail->SMTPAuth = false; //加密驗證, 如果是tls/ssl加密 需改為true $mail->SMTPSecure = false; //加密方式: ssl or tls or false $mail->Username = "username"; //SMTP登入帳號 $mail->Password = "password"; //SMTP登入密碼 $mail->setFrom("abc@doamin.com","name"); //設定發信人電郵及名稱 $mail->Subject ="subject"; //郵件主題 $mail->Body = "body"; //郵件內容 $mail->CharSet = "UTF-8"; $mail->Encoding = "base64"; $mail->isHTML(true); //設定為HTML語法 //新增收件人 $mail->addAddress("a@domain.com"); $mail->addCC("a@domain.com"); $mail->addBCC("c@domain.com"); //發送電郵 $mail->send(); ?>
可重用function
<?php include "common.php"; //common.php 包括了 read write ini use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'vendor/autoload.php'; $configINI = new INIFile("config.ini"); $mail = new PHPMailer(true); // $mail->SMTPDebug = 2; $mail->isSMTP(); $mail->Host = $configINI->readINI("SMTP","HOST"); $mail->Port = $configINI->readINI("SMTP","PORT"); if($configINI->readINI("SMTP","SMTPSECURE") != ""){ $mail->SMTPAuth = true; $mail->SMTPSecure = $configINI->readINI("SMTP","SMTPSECURE"); $mail->Username = $configINI->readINI("SMTP","USERNAME"); $mail->Password = $configINI->readINI("SMTP","PASSWORD"); } function sendEmail($from,$from_name, $to, $subject, $html_body, $cc, $bcc){ $GLOBALS['mail']->setFrom($from, $from_name); $GLOBALS['mail']->Subject = $subject; $GLOBALS['mail']->Body = $html_body; $GLOBALS['mail']->CharSet = "UTF-8"; $GLOBALS['mail']->Encoding = "base64"; $GLOBALS['mail']->isHTML(true); //多於1個收件者 if(strpos($to, ',') !== false){ $toArr = explode(',', $to); for($i = 0;$i < sizeof($toArr); $i++){ if($toArr[i] == "" || $toArr[i] == null){ continue; } $GLOBALS['mail']->addAddress($toArr[i]); } } else{ $GLOBALS['mail']->addAddress($to); } //多於1個CC if(strpos($cc, ',') !== false){ $ccArr = explode(',', $cc); for($i = 0;$i < sizeof($ccArr); $i++){ if($ccArr[i] == "" || $ccArr[i] == null){ continue; } $GLOBALS['mail']->addCC($ccArr[i]); } } else if($cc != "" && $cc != null){ $GLOBALS['mail']->addCC($cc); } //多於1個BCC if(strpos($bcc, ',') !== false){ $bccArr = explode(',', $bcc); for($i = 0;$i < sizeof($bccArr); $i++){ if($bccArr[i] == "" || $bccArr[i] == null){ continue; } $GLOBALS['mail']->addBCC($bccArr[i]); } } else if($bcc != "" && $bcc != null){ $GLOBALS['mail']->addBCC($bcc); } $GLOBALS['mail']->send(); } ?>
config.ini 例子
[SMTP] HOST=smtp.domain.com PORT=465 SMTPSECURE=ssl USERNAME=username PASSWORD=password