似乎因為使用情境的不同 少掉了autoload 所以
$this->smtp = new SMTP; 這邊報錯 關鍵錯誤 少了
require “路徑/PHPMailerAutoload.php”;
補上即可正常運作 其他相關的設定 我就不多談囉~
// define('TITLE_CH','中文'); // define('TITLE_EN','aaa'); // define('MAIL_SMTPSECURE', 'ssl'); // Gmail的SMTP主機需要使用SSL連線 // define('MAIL_HOST' , 'smtp.gmail.com');// Gmail的SMTP主機 // define('MAIL_PORT' , '465'); // Gmail的SMTP主機的port為465 // define('MAIL_USERNAME' , '帳號@gmail'); // 設定驗證帳號 // define('MAIL_PASSWORD' , '密碼'); // 設定驗證密碼 if (!function_exists('mailer')){ function mailer($to,$name,$subject,$message){ require_once(DIRROOT."lib/PHPMailer/PHPMailerAutoload.php"); include_once(DIRROOT."lib/PHPMailer/class.phpmailer.php"); $mail = new PHPMailer(); // 建立新物件 $mail->IsSMTP(); // 設定使用SMTP方式寄信 $mail->SMTPAuth = true; // 設定SMTP需要驗證 $mail->SMTPSecure = MAIL_SMTPSECURE; // Gmail的SMTP主機需要使用SSL連線 $mail->Host = MAIL_HOST; // Gmail的SMTP主機 $mail->Port = MAIL_PORT; // Gmail的SMTP主機的port為465 $mail->CharSet = "utf-8"; // 設定郵件編碼 $mail->Encoding = "base64"; $mail->WordWrap = 50; // 每50個字元自動斷行 $mail->Username = MAIL_USERNAME; // 設定驗證帳號 $mail->Password = MAIL_PASSWORD; // 設定驗證密碼 $mail->From = MAIL_USERNAME; // 設定寄件者信箱 $mail->FromName = TITLE_CH; // 設定寄件者姓名 $mail->Subject = $subject; // 設定郵件標題 $mail->Body = $message; $mail->IsHTML(true); // 設定郵件內容為HTML $mail->AddAddress($to,$name); // 收件者郵件及名稱 return $mail->Send(); } } echo "測試信件"; $to = "[email protected]"; $name = "王小明"; $subject = "這是封測試郵件"; $message = "測試信件<br>測試信件"; $ms = mailer($to,$name,$subject,$message); var_dump($ms);