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

最近做网站需要增加一个发送邮件的功能包括单独发送和群发邮件:下面来说下用到的2种方式:

1.采用PHPmailer,这个是写好的类库,我们直接引用就好,包括两个文件:

class.phpmailer.php

class.smtp.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 = "[email protected]";
$mail->FromName = "发件人姓名";

$mail->AddAddress($emailadd,""); //调用对象的AddAddress方法将邮件发送地址设置好 


//$mail->AddAddress("[email protected]","dalilng");
//$mail->AddAddress("[email protected]","daling");  // 可选
//$mail->AddReplyTo("[email protected]", "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标签

你可能感兴趣的:(网站发送邮件及群发的两种方法)