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

本文介绍了使用PHPMailer发送邮件及群发的实现方式,包括SMTP配置和代码示例。同时也讨论了群发时遇到的问题及通过HTML mailto属性调用本地邮件客户端作为替代方案,以提高发送效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做网站需要增加一个发送邮件的功能包括单独发送和群发邮件:下面来说下用到的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就自动切换到编写邮件的目录,发现,收件人也已经被自动填写完成,然后编辑内容发送就好。速度还快,省去了不少麻烦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值