PHPMailer發送郵件現在php開發者比較常用的一個郵件發送組件了,利用它我們幾乎不需要考慮任何問題,只要簡單的把代碼放網上把郵箱用戶名密碼與stmp改一下就可以發郵件了.
PHPMailer是別人封裝好的一個發送郵件的庫,用起來很方便,其支持mail、sendmail和smtp的方式可以到https://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list去下載最新版本的,下面通過gmail smtp發送郵件為例來說明smtp使用方法.
- function sendMail($subject, $body, $to, $ccs = array()) {
- require_once './class.phpmailer.php';
- $mail = new PHPMailer();
- //設定郵件編碼,默認ISO-8859-1,也可以直接去源代碼中修改
- $mail->CharSet = 'UTF-8';
- // 使用smtp的方式發送
- $mail->IsSMTP();
- //smtp服務器需要認證
- $mail->SMTPAuth = TRUE;
- //安全協議 gmail 是采用ssl的
- $mail->SMTPSecure = "ssl";
- //smtp服務器
- $mail->Host = 'smtp.gmail.com';
- //smtp服務器端口,普通是25
- $mail->Port = 465;
- //smtp 認證用戶名和密碼
- $mail->Username = 'yourgmailaccount@gmail.com';
- $mail->Password = "yourpassword";
- //發件人地址和名字,名字可以省略
- $mail->SetFrom('yourgmailaccount@gmail.com', 'display name');
- // 郵件標題
- $mail->Subject = $subject;
- // 郵件內容,支持HTML格式
- $mail->MsgHTML($body);
- // 收件人地址
- $mail->AddAddress($to);
- // 抄送人
- foreach ($ccs as $cc) {
- $mail->AddCC($cc);
- }
- if(!$mail->Send()) {
- echo "error info:" . $mail->ErrorInfo;
- }
- }
上面是核心代碼,下面我們綜合一下實例,按如下示例編寫代碼即可實現php在線發送郵件.
一:前臺表單,代碼如下:
- <html>
- <body>
- <h3>phpmailer Unit Test</h3>
- 請你輸入<font color="#FF6666">收信</font>的郵箱地址:
- <form name="phpmailer" action="send.php" method="post">
- <input type="hidden" name="submitted" value="1"/>
- 郵箱地址: <input type="text" size="50" name="address" />
- <br/>
- <input type="submit" value="發送"/>
- </form>
- </body>
- </html>
二:后臺PHP程序,代碼如下:
- <?php
- require("class.phpmailer.php"); //下載的文件必須放在該文件所在目錄
- $mail = new PHPMailer(); //建立郵件發送類
- $address = $_POST['address'];
- $mail->IsSMTP(); // 使用SMTP方式發送
- $mail->Host = "mail.xxxxx.com"; // 您的企業郵局域名
- $mail->SMTPAuth = true; // 啟用SMTP驗證功能
- $mail->Username = "user@xxxx.com"; // 郵局用戶名(請填寫完整的email地址)
- $mail->Password = "******"; // 郵局密碼
- $mail->From = "user@xxxx.com"; //郵件發送者email地址
- $mail->FromName = "您的名稱";
- $mail->AddAddress("$address", "");//收件人地址,可以替換成任何想要接收郵件的email信箱,格式是AddAddress("收件人email","收件人姓名")
- //$mail->AddReplyTo("", "");
- //$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
- //$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
- $mail->Subject = "PHPMailer測試郵件"; //郵件標題
- $mail->Body = "Hello,這是測試郵件"; //郵件內容
- $mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略
- if(!$mail->Send())
- {
- echo "郵件發送失敗. <p>";
- echo "錯誤原因: " . $mail->ErrorInfo;
- exit;
- }
- echo "郵件發送成功";
- ?>
新聞熱點
疑難解答