有不少站长读了 ZAC 的文章《Email Marketing - 电子邮件营销终极手册》之后,准备着手改造自己网站上的 Newsletter 程序。对于发送邮件列表,最安全的办法,是使用第三方公司的邮件列表服务。因为使用自己的域名发送,尽管你发送的是正规内容,用户的订阅过程也采用了二次确认,然而一旦被投诉列入反垃圾邮件组织的黑名单,就比较麻烦了,要折腾许久才会解封。而第三方的专业邮件列表服务公司,一般都跟各大 ISP 互有协议。所以国外许多大公司也都是用第三方的邮件列表服务。
但大部分站长还是希望使用自己的域名来发送。主要原因不外乎是:
现在,将自己网站的邮件服务交给 Google Apps 托管的站长越来越多。Google Apps 以及 Gmail 的 SMTP 服务器,要求使用 SSL 连接,但 PHP 自带的 mail 函数以及大多数 PHP 邮件程序目前还不能支持 SSL。那么,如何使用 Gmail 或者 Google Apps 的 SMTP 服务器在线发送邮件列表呢?我的解决方案是使用 PHPMailer。
PHPMailer 是基于 GNU/LGPL 的 PHP 开源邮件发送程序,以 PHP Class 的方式提供给 PHP 开发者调用。由 codeworxtech 开发。目前提供 PHP4 和 PHP5 两个版本免费下载。主要特性:
通过 Gmail/Google Apps 的 SMTP 服务器发送邮件,示例代码如下:
<?php // example on using PHPMailer with GMAIL include("class.phpmailer.php"); $mail = new PHPMailer(); $body = $mail->getFile('contents.html'); $body = eregi_replace("[\]",'',$body); $mail->IsSMTP(); $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "ssl"; // sets the prefix to the servier $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server $mail->Port = 465; // set the SMTP port $mail->Username = "yourname@gmail.com"; // GMAIL username $mail->Password = "password"; // GMAIL password $mail->From = "replyto@yourdomain.com"; $mail->FromName = "Webmaster"; $mail->Subject = "This is the subject"; $mail->AltBody = "This is the body when user views in plain text format"; //Text Body $mail->WordWrap = 50; // set word wrap $mail->MsgHTML($body); $mail->AddReplyTo("replyto@yourdomain.com","Webmaster"); $mail->AddAttachment("/path/to/file.zip"); // attachment $mail->AddAttachment("/path/to/image.jpg", "new.jpg"); // attachment $mail->AddAddress("username@domain.com","First Last"); $mail->IsHTML(true); // send as HTML if(!$mail->Send()) echo "Mailer Error: " . $mail->ErrorInfo; else echo "Message has been sent"; ?>
可以看出 PHPMailer 的使用很简单。PHP 程序员可以很容易参照上述代码使用 PHPMailer 改造自己的 Newsletter 程序。
目前,使用 Gmail/Google Apps 的 SMTP Mail Server 发送邮件的每日上限是 500封。这点需要注意。