您的位置:首页 > 运维架构 > 网站架构

网站发送邮件及群发的两种方法

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就自动切换到编写邮件的目录,发现,收件人也已经被自动填写完成,然后编辑内容发送就好。速度还快,省去了不少麻烦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: