【PHP】PHPMailer + GMail寄信 / 換行功能 / 範例

如果你的主機不支援SMTP,只要利用 PHPMailer寄信套件,配合GMail
你就可以為你的網站建立客服系統、聯絡表單,還可以夾帶檔案
這 PHPMailer 支援HTML格式,允許 SSL 跟 TLS驗證。


官方github | 範例載點[Google Drive]
 

說明

首先建立一個表單 feedback.php

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Feedback | iZO製作</title>
</head>
<body>
<div style="text-align: left;">
<?php
if ($_POST['C_mail']!=null){
	require_once('PHPMailer/PHPMailerAutoload.php');
	$C_name=$_POST['C_name'];
	$C_topic=$_POST['C_topic'];
	$C_message=nl2br($_POST[C_message]);//轉換格式,讓表單內容可以換行
	$C_mail=$_POST['C_mail'];
	$C_file=$_FILES['C_file']['name'];
	$C_tmpfile=$_FILES['C_file']['tmp_name'];
    $mail= new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";	//SMTP驗證方式 SSL/TLS
    $mail->Host = "smtp.url.tw";	//SMTP主機
    $mail->Port = 465;								//SMTP主機的埠號(Gmail為465)。
    $mail->CharSet = "utf-8";
    $mail->Username = "user";	//帳號
    $mail->Password = "pass";	//密碼
    $mail->From = $C_mail;
    $mail->FromName = $C_name;
    $mail->Subject = $C_topic;
    $mail->Body = $C_message;
    $mail->IsHTML(true);
    $mail->AddAttachment($C_tmpfile, $C_file);
    $mail->AddAddress("[email protected]");	//收件者管理員信箱
    if(!$mail->Send()){
        echo "<p align=center>傳送Error: ".$errorx=$mail->ErrorInfo."</p>";
    }else{
        echo "<p align=center><b>傳送成功。</b></p>";
    }
}else{ ?>
    <form method="post" action="" enctype="multipart/form-data">
    <table align="center"><br>
    <h1 style="text-align: center;">聯 絡 管 理 員</h1><br>
    <tr><td>姓名</td>
	<td><input name="C_name" type="text"></select></td></tr>
	<tr><td>標題</td>
	<td><input name="C_topic" type="text"></select></td></tr>
    <tr><td>內容</td>
    <td><textarea name="C_message" cols="100" rows="10"></textarea></td></tr>
	<tr><td>信箱</td>
    <td><input name="C_mail" type="text"></td></tr>
    <tr><td>圖片附件</td><td><input name="C_file" type="file"></td></tr>
	<tr><td colspan="2" align="center"><input type="submit" value="確定發送"></td></tr>
    </table>
    </form>
<?php } ?>
<br><br><p align="center"><font size="2"><a href="https://iZO.tw">iZO手札 製作<a></font></p>
</div>
</body>
</html>

 
然後下載 PHPMailer套件裡的以下四個檔案,並放在PHPMailer資料夾內。
class.phpmailer.php、class.pop3.php、class.smtp.php、PHPMailerAutoload.php
 
完成!


補充說明

(1) 加入nl2br函式是為了讓表單擁有換行的功能
(2) GMail的設定,如下:

    $mail->SMTPSecure = "tls";	//SMTP主機
    $mail->Host = "smtp.gmail.com";	//SMTP主機
    $mail->Port = 465;	//SMTP主機的埠號(Gmail為465)
    $mail->CharSet = "utf-8";	//郵件編碼
    $mail->Username = "[email protected]";	//帳號
    $mail->Password = "passs";	//密碼