网站发送邮件及群发的两种方法
2015-07-02 19:29
507 查看
最近做网站需要增加一个发送邮件的功能包括单独发送和群发邮件:下面来说下用到的2种方式:
1.采用PHPmailer,这个是写好的类库,我们直接引用就好,包括两个文件:
class.phpmailer.php
class.smtp.php 这两个是类库,下载下来放在工程目录下就好。
接下来就是用类库里边的函数进行设置创建就好:具体代码如下:
<?php
/**
**/
require_once 'class.phpmailer.php'; //将类库包含进来
$mail = new PHPMailer(); //创建PHPMailer对象
$mail->IsSMTP(); // 设置使用 SMTP
$mail->Host = "smtp.qq.com"; // 指定的 SMTP 服务器地址
$mail->SMTPAuth = true; // 设置为安全验证方式
$mail->Port = "25";
$mail->Username = "xxxx@163,com"; // SMTP 发邮件人的用户名
$mail->Password = "邮箱的登录密码"; // SMTP 密码
$mail->From = "xxxx@163.com";
$mail->FromName = "发件人姓名";
$mail->AddAddress($emailadd,""); //调用对象的AddAddress方法将邮件发送地址设置好
//$mail->AddAddress("terryxiahui@yahoo.com.cn","dalilng");
//$mail->AddAddress("xiahui@kaible.com","daling"); // 可选
//$mail->AddReplyTo("xiahui@kaible.com", "TERRY2");
$mail->WordWrap = 50; // set word wrap to 50 characters
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 加附件
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // 附件,也可选加命名附件
$mail->IsHTML(true); // 设置邮件格式为 HTML
$mail->Subject = $subject; // 标题,可替换成从网页上获取的变量
$mail->Body = $content; // 内容
//$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; // 附加内容
if(!$mail->Send())
{
echo " send failure".
echo "the result is " $mail->ErrorInfo; //$mail->ErrorInfo里边存放了出错信息。
}
?>
若想要群发的时候 则将上边的设置收件人代码 改成循环赋值即可:
for($i=0;$i<$count;$i++)
{
$mail->AddAddress ($add[$i]); //可以群发的所有人的地址放入数组中,然后循环赋值给类库定义的数据,之后采用$mail->send()一次性发送
}【注意:这里设置的发件人用到的邮箱,要设置相应的功能,比如用QQ的邮箱发送,就要到QQ邮箱中找到账户,开启SMTP\POP3等服务功能,才可以正常使用】
这种方法的缺点是:如果有一个邮箱格式不对发送不正确的话,邮件发送就停止了,也就是说之后正确的邮箱地址也不会 被发送。
若想要每次都调用$mail->Send(),遇到格式不对的跳过,再次调用$mail->Send()函数发送,可以解决上述问题,但是效率和速度慢很多。
因为这个原因,开发中采用了第二种方法,使用HTML的mailto属性,调用本地的默认的邮件客户端进行邮件发送,这个属性可以将所要发送的邮件地址传送给调用的本地邮件客户端,用户只需要直接编辑内容即可发送。这种方法简单方便。
我采用的是FOXMAIL的方法。首先去下载一个FXOMAIL客户端,然后采用的QQ邮箱作为发件人,在QQ邮箱里设置好SMTP、pop3等服务开启。然后登录FOXMAIL
之后在需要发送邮件的位置插入一个A标签 <a href="mailto:12345@qq.>发送邮件</a> 这样点击标签后,就会弹出对话框让你选择邮件客户端,然后选择FOXMAIL就自动切换到编写邮件的目录,发现,收件人也已经被自动填写完成,然后编辑内容发送就好。速度还快,省去了不少麻烦。
1.采用PHPmailer,这个是写好的类库,我们直接引用就好,包括两个文件:
class.phpmailer.php
class.smtp.php 这两个是类库,下载下来放在工程目录下就好。
接下来就是用类库里边的函数进行设置创建就好:具体代码如下:
<?php
/**
**/
require_once 'class.phpmailer.php'; //将类库包含进来
$mail = new PHPMailer(); //创建PHPMailer对象
$mail->IsSMTP(); // 设置使用 SMTP
$mail->Host = "smtp.qq.com"; // 指定的 SMTP 服务器地址
$mail->SMTPAuth = true; // 设置为安全验证方式
$mail->Port = "25";
$mail->Username = "xxxx@163,com"; // SMTP 发邮件人的用户名
$mail->Password = "邮箱的登录密码"; // SMTP 密码
$mail->From = "xxxx@163.com";
$mail->FromName = "发件人姓名";
$mail->AddAddress($emailadd,""); //调用对象的AddAddress方法将邮件发送地址设置好
//$mail->AddAddress("terryxiahui@yahoo.com.cn","dalilng");
//$mail->AddAddress("xiahui@kaible.com","daling"); // 可选
//$mail->AddReplyTo("xiahui@kaible.com", "TERRY2");
$mail->WordWrap = 50; // set word wrap to 50 characters
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 加附件
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // 附件,也可选加命名附件
$mail->IsHTML(true); // 设置邮件格式为 HTML
$mail->Subject = $subject; // 标题,可替换成从网页上获取的变量
$mail->Body = $content; // 内容
//$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; // 附加内容
if(!$mail->Send())
{
echo " send failure".
echo "the result is " $mail->ErrorInfo; //$mail->ErrorInfo里边存放了出错信息。
}
?>
若想要群发的时候 则将上边的设置收件人代码 改成循环赋值即可:
for($i=0;$i<$count;$i++)
{
$mail->AddAddress ($add[$i]); //可以群发的所有人的地址放入数组中,然后循环赋值给类库定义的数据,之后采用$mail->send()一次性发送
}【注意:这里设置的发件人用到的邮箱,要设置相应的功能,比如用QQ的邮箱发送,就要到QQ邮箱中找到账户,开启SMTP\POP3等服务功能,才可以正常使用】
这种方法的缺点是:如果有一个邮箱格式不对发送不正确的话,邮件发送就停止了,也就是说之后正确的邮箱地址也不会 被发送。
若想要每次都调用$mail->Send(),遇到格式不对的跳过,再次调用$mail->Send()函数发送,可以解决上述问题,但是效率和速度慢很多。
因为这个原因,开发中采用了第二种方法,使用HTML的mailto属性,调用本地的默认的邮件客户端进行邮件发送,这个属性可以将所要发送的邮件地址传送给调用的本地邮件客户端,用户只需要直接编辑内容即可发送。这种方法简单方便。
我采用的是FOXMAIL的方法。首先去下载一个FXOMAIL客户端,然后采用的QQ邮箱作为发件人,在QQ邮箱里设置好SMTP、pop3等服务开启。然后登录FOXMAIL
之后在需要发送邮件的位置插入一个A标签 <a href="mailto:12345@qq.>发送邮件</a> 这样点击标签后,就会弹出对话框让你选择邮件客户端,然后选择FOXMAIL就自动切换到编写邮件的目录,发现,收件人也已经被自动填写完成,然后编辑内容发送就好。速度还快,省去了不少麻烦。
相关文章推荐
- 【Web探索之旅】第二部分第五课:响应式网站和移动应用
- ZX2000 SPDIF 整体架构以及SPDIF协议分析
- 架构师速成6.2-知识什么时候才是你的
- 架构师速成6.2-知识什么时候才是你的 分类: 架构师速成 2015-07-02 17:35 338人阅读 评论(0) 收藏
- Adaboost的几个人脸检测网站
- DRBD+HEARTBEAT+NFS高可用架构笔记
- 18个网站优化技巧
- 在线测试php代码网站
- iOS开发学习网站汇总
- 全国各省省政府网站性能排行榜
- HA高可用集群
- Android 资料网站
- 浅谈大型Web系统架构
- DRBD+Heartbeat+Mysql:配置mysql的高可用
- 个性化个人主站——使用Hexo框架
- 使用 CSS 媒体查询创建响应式网站
- 18个网站优化技巧
- IT人士必去的10个网站
- Android的系统架构
- 团队协作工具Worktile技术架构揭秘