iT邦幫忙

2

[PHP]表單搭配PHPMailer寄信-使用Gmail寄出

ericayoyo 2 周前2460 瀏覽

PHPMailer官方網站:http://phpmailer.worxware.com/
套件的下載處:https://github.com/Synchro/PHPMailer

先至php.ini中,修改「;extension=php_openssl.dll」,把字串前的分號「;」拿掉,再重新啟動Apache Web Server

先在contect.php準備一個php內容,如下:

<form id="form1" name="form1" method="post" action="sendmail.php">
    <fieldset>
    <legend>留言給我們</legend>
    <label>您的大名:</label>
    <input id="C_name" name="C_name" type="text" />
    <br />

    <label>您的Email:</label>
    <input id="C_email" name="C_email" type="text" />
    <br />

    <label>您的電話號碼:</label>
    <input id="C_tel" name="C_tel" type="text" />
    <br />

    <label>意見:</label>
    <textarea id="C_message" name="C_message"></textarea>
    <br />

    <input id="submit" name="submit" type="submit" value="確定送出" />
    </fieldset>
    </form>

在程式碼裡,需要改的地方有Gamil帳號、Gamil密碼,而寄件者信箱跟寄件者姓名,則是選擇性的
但要是沒填寫,在寄件者信箱系統會自動抓取寄件的mail位置,而寄件者姓名則會顯示Root User

gmail設定

設定開通gmail stmp,設置為測試寄信的Gmail帳號

1.登入您的gmail,點選右上方的[齒輪],再點選[設定]
2.進入[設定]後,點選[轉寄和POP/IMAP]並將POP下載的狀態改成[對現在起所收到的郵件啟用POP]
3.到[ https://www.google.com/settings/security/lesssecureapps ] => 選擇 [開啟] 低安全性應用程式設定

sendEmail.php

<?php
    require_once('./PHPMailer/PHPMailerAutoload.php');
    $C_name=$_POST['C_name'];
    $C_email=$_POST['C_email'];
    $C_tel=$_POST['C_tel'];
    $C_message=$_POST['C_message'];
   
    $mail= new PHPMailer();                             //建立新物件
    $mail->SMTPDebug = 2;                        
    $mail->IsSMTP();                                    //設定使用SMTP方式寄信
    $mail->SMTPAuth = true;                        //設定SMTP需要驗證
    $mail->SMTPSecure = "ssl";                    // Gmail的SMTP主機需要使用SSL連線
    $mail->Host = "smtp.gmail.com";             //Gamil的SMTP主機
    $mail->Port = 465;                                 //Gamil的SMTP主機的埠號(Gmail為465)。
    $mail->CharSet = "utf-8";                       //郵件編碼
    $mail->Username = "XXX@gmail.com";       //Gamil帳號
    $mail->Password = "XXX";                 //Gmail密碼
    $mail->From = "XXX@gmail.com";        //寄件者信箱
    $mail->FromName = "XXX";                  //寄件者姓名
    $mail->Subject ="這是一封測試信"; //郵件標題
    $mail->Body = "親愛的 ".$C_name."(".$C_email."),您好:<br /><br />電話:".$C_tel."<br />回應內容:".$C_message; //郵件內容
    $mail->addAttachment('../uploadfile/file/dirname.png','new.jpg'); //附件,改以新的檔名寄出
    $mail->IsHTML(true);                             //郵件內容為html
    $mail->AddAddress("$C_email");            //收件者郵件及名稱
    if(!$mail->Send()){
        echo "Error: " . $mail->ErrorInfo;
    }else{
        echo "<b>感謝您的留言,您的建議是我們前進的動力!</b>";
    }
    
?>

1 則留言

0
小魚
iT邦新手 2 級 ‧ 2 周前

Gmail寄信好像比較容易,
你有用其他信箱寄信過嗎?
想試都還沒時間試...

ericayoyo iT邦新手 5 級 ‧ 2 周前 檢舉

也還沒有呢^^
目前也是覺得Gmail寄信的做法蠻不錯的,紀錄分享下來。
若之後有試的話再來補充上去囉!/images/emoticon/emoticon12.gif

小魚 iT邦新手 2 級 ‧ 2 周前 檢舉

既然大大分享了,那我分享一個C#寄Gmail的程式吧。

我要留言

立即登入留言