导航:首页 > 编程语言 > php群发邮件

php群发邮件

发布时间:2023-02-02 17:40:17

① 用php做邮件群发 每天要求10W条 用那个发送类

PHPMailer,和类没什么关系,找个好的企业邮箱就行了。企业邮箱QQ和阿里都行。

② 怎么利用php发送邮件求详细教程

PHP虽然提供了mail()函数,但并不好用,而PHPMailer是一个不错的邮件发送工具,接下来将详细介绍,需要了解的朋友可以参考下:

本人使用wamp集成开发环境,Apache2.4.4, Mysql5.6.12 , php5.4.12.开始的时候使用mail()发送邮件,更改配置始终无法成功,了解到mail()函数使用需要sendmail程序。又下载了sendmail程序扩展包。按照网上的说法也改好了php.ini和sendmail.ini。使用foxmail 7.1创建了自己的qq邮箱账户,开启了POP3/SMTP服务,更改发件服务器为POP3,使用和收件服务器相同的身份验证,结果还是报错:Warning: mail(): SMTP server response: 503 Error: need EHLO and AUTH first ! in F:\PHP\wamp\www\mail.php on line 8。以下是使用mail()函数发送邮件的php代码:

[php] view plain
<span style="font-size:14px"><?php

$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "[email protected]";
$headers = "From: $from";
$send=mail($to,$subject,$message,$headers);
if($send)
echo "Mail Sent";
else
echo "Sorry,mail sent failed!"

?></span>
在CSDN论坛上发现phpmailer可以方便快捷的发送邮件,以下写出详细使用教程:
1.需要下载PHPMailer文件包,(点击打开链接)

2.确认你的服务器已经系统支持socket,通过phpinfo()查看是否支持socket;

3.把文件解压到你的WEB服务器目录下,就可以使用PHPMailer发送邮件了。

以下为前台表单php代码:

[php] view plain
<span style="font-size:14px"><html>
<body>
<h3>phpmailer Unit Test</h3>
请你输入<font color="#FF6666">收信</font>的邮箱地址:
<form name="phpmailer" action="testemail.php" method="post">
<input type="hidden" name="submitted" value="1"/>
邮箱地址: <input type="text" size="50" name="to" />
<br/>
<input type="submit" value="发送"/>
</form>
</body>
</html> </span>
以下为后台程序:

[php] view plain
<?php
/**
* Simple example script using PHPMailer with exceptions enabled
* @package phpmailer
* @version $Id$
*/

header("content-type:text/html;charset=utf-8");

ini_set("magic_quotes_runtime",0);

require('class.phpmailer.php');

try {
$mail = new PHPMailer(true); //New instance, with exceptions enabled

//$body = file_get_contents('contents.html');
//$body = preg_replace('/\\\\/','', $body); //Strip backslashes
$to = $_POST['to'];
$mail->CharSet="GB2312";//设置邮件字符编码否则邮件会乱码
$mail->Encoding="base64";
$mail->IsSMTP(); // tell the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port = 25; // set the SMTP server port
$mail->Host = "smtp.qq.com"; // SMTP server
$mail->Username = "[email protected]"; // SMTP server username
$mail->Password = "000000000000"; // SMTP server password

//$mail->IsSendmail(); // tell the class to use Sendmail

$mail->AddReplyTo("[email protected]","han qing");

$mail->From = "[email protected]";
$mail->FromName = "han qing";

//$to = "[email protected]";

$mail->AddAddress($to);

$mail->Subject =$mail->Subject = "=?utf-8?B?" . base64_encode("First PHPMailer Message") . "?=";

$mail->Body = "<h1>phpmailer演示</h1> 这是用PHPMAILER发的第一份邮件,从QQ邮箱发到Google邮箱.";

$mail->AddAttachment("F:/myloe.jpg");

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap = 80; // set word wrap

//$mail->MsgHTML($body);

$mail->IsHTML(true); // send as HTML

$mail->Send();
echo 'Message has been sent.';
} catch (phpmailerException $e) {
echo $e->errorMessage();
}
?>

③ php中怎么实现对会员的邮件群发功能

php本身自带mail()内建对象,不过不理想,你可以从网上搜索自建smtp类,通过他可以实现基本的发送邮件

④ php如何发送邮件

http://game.weitang123.com/sendmail就是邮件群发功能的工具,仿照着写吧

⑤ 如何通过php发送邮件php的mail函数不能用!

支持mail的服务器 一般都是linux的 国内的好像不多
自己的电脑安装mail服务器不能往外发的 呵呵 可以自己测试用
现在很多管理系统都是用fsocketopen方式连接邮件服务器并发送邮件的 可以使用163 126的邮箱 网上有一些模型的 就像是好多管理系统后台让填入用户名和密码 就能群发一样 如果你不介意的话 给你转发一个以前我自己改过的可以利用fsocketopen方式群发或者单发email的一共三个文件
MailClass.php 》》》》》》
<?php
class Smtp
{
var $host; //主机
var $port; //端口 一般为25
var $user; //SMTP认证的帐号
var $pass; //认证密码
var $debug = false; //是否显示和服务器会话信息?
var $conn;
var $result_str; //结果
var $in; //客户机发送的命令
var $from; //收件人收到邮件显示的源信箱
var $email; //真实的地址
var $to; //目标信箱
var $subject; //主题
var $body; //内容
var $error;
var $All;
function Smtp($array)
{
$this->host = $array['host'];
$this->port = $array['port'];
$this->email= $array['trueemail'];
$this->from = $array['from'];
$this->user = base64_encode($array['username']);
$this->pass = base64_encode($array['password']);
$this->debug = $array['debug'];
$this->socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);

if($this->socket){
$this->result_str = "创建SOCKET:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
die("初始化失败,请检查您的网络连接和参数");

$this->conn = socket_connect($this->socket,$this->host,$this->port);
if($this->conn){
$this->result_str = "创建SOCKET连接:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
die("初始化失败,请检查您的网络连接和参数");

$this->result_str = "服务器应答:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);

}

function debug_show($str)
{
if($this->debug)
{
echo $str."<p>\r\n";
}
}

function setmail($to,$subject,$body){
$this->to = $to;
$this->subject = $subject;
$this->body = $body;

$All ="Content-type:text/html;charset=gb2312\r\n"; //邮件的编码方式可以根据自己的需要改
$All .= "From:".$this->from."\r\n";
$All .= "To:".$this->to."\r\n";
$All .= "Subject:".$this->subject."\r\n\r\n";
$All .= $this->body;
$this->All = $All;
}
/**
* 发送邮件部分
* 接收邮箱数组
*/
function send($toarray,$subject,$body)
{
//以下是和服务器会话
$this->in = "EHLO HELO\r\n";
$this->docommand();

$this->in = "AUTH LOGIN\r\n";
$this->docommand();

$this->in = $this->user."\r\n";
$this->docommand();

$this->in = $this->pass."\r\n";
$this->docommand();

foreach( $toarray as $to ) {
$this -> setmail($to,$subject,$body);

$this->in = "RSET\r\n";
$this->docommand();

$this->in = "MAIL FROM:<".$this->email.">\r\n";
$this->docommand();

$this->in = "RCPT TO:<".$this->to.">\r\n";
$this->docommand();

$this->in = "DATA\r\n";
$this->docommand();

$this->in = $this->All."\r\n.\r\n";
$this->docommand();
}

$this->in = "QUIT\r\n";
$this->docommand();

//结束,关闭连接
}
function docommand()
{
socket_write ($this->socket, $this->in, strlen ($this->in));
$this->debug_show("Client Action:".$this->in);
$this->result_str = "Server:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);
}
}
?>

MailConfig.inc.php 》》》》》》

<?php
$mailconfig['host'] = "smtp.126.com"; //主机
$mailconfig['port'] = "25"; //端口 一般为25
$mailconfig['trueemail'] = "[email protected]"; //真实的地址
$mailconfig['username'] = "mhz1600"; //SMTP认证的帐号
$mailconfig['password'] = "*****"; //改成自己的
$mailconfig['debug'] = false; //是否显示和服务器会话信息?
$mailconfig['from'] = "[email protected]"; //显示给用户的发件人

include_once "MailClass.php";
set_time_limit(180);
?>

SendDemo.php 》》》》》》
<?php
include_once "MailConfig.inc.php";

//简单的临时码验证 当前时间(到小时)的验证码
//if( empty($_GET['s']) || $_GET['s'] != md5(date('Y-m-d-H',time())) ) {header("http/1.1 404"); die('');}

//发送email
if( isset($_POST['sendmail']) ) {
if( isset($_POST['from']) ) $mailconfig['from'] = $_POST['from'];
$smtp = new Smtp($mailconfig);
$title = $_POST['title'];
//获取post的email正文
if( get_magic_quotes_gpc() ) $message = $_POST['message'];
else $message = addslashes($_POST['message']);

//从email列表/文档中分离出所有的email地址
$pregstr = "@[a-zA-Z0-9\_][0-9a-zA-Z\.\-\_]+\@[0-aA-Za-z\-\_]+\.[0-9a-zA-Z\.\-\_]+@is";
$temp = array();
preg_match_all($pregstr,$_POST['emails'],$temp);
$toarray = $temp[0];
//var_mp($toarray);

$smtp->send($toarray,$title,$message);

die("操作完成!<A href=".$_SERVER['PHP_SELF']."?s=".md5(date('Y-m-d-H',time())).">继续发送其他</a> <a href=# onclick=window.close()>关闭</a>");
}
else {
if( isset($_POST['emails']) ) {
if( is_array($_POST['emails']) )
$emails = implode("\t",$_POST['emails']);
else
$emails = $_POST['emails'];
}
else $emails = "";
?>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style></head>

<body>
<form id="form1" name="form1" method="post" action="">
<table width="600" border="1" align="center" cellpadding="3" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#eeeeee">
<tr>
<td width="66">发件人:</td>
<td width="516"><input name="from" type="text" value="<?php echo $mailconfig['from']; ?>"> 可以直接修改mailconfig文件中的email</td>
</tr>
<tr>
<td>邮件标题:</td>
<td><input name="title" type="text" value="邮件群发测试标题!" size="60"></td>
</tr>
<tr>
<td>收件人:<br></td>
<td><textarea name="emails" cols="60" rows="5"><?php echo $emails; ?></textarea></td>
</tr>
<tr>
<td>邮件正文:<br>
【html】</td>
<td><textarea name="message" cols="60" rows="10">邮件群发测试!谢谢~!</textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="sendmail" value=" 发送邮件 "> </td>
</tr>
</table>
</form>
<?
}
?>
</body>
</html>

使用方式 运行senddemo.php就行 确定本地或者服务器开启了fsocketopen支持 在输入框可以多种格式的的输入很多email 程序用正则表达式匹配出所有的email地址 通过服务器循环对话的方式不断的发送邮件 看看那个demo的流程就明白了
【郑重声明:mailclass修改自网上的模型 其他本人原创,版权不究 欢迎分享】

+---------------------广告-------------------------+
那一天:回忆,让生活更美好
独享人生中那个特别的日子,记录从那一天开始的幸福
http://www.nayitian.net
期待您的加入,欢迎提供宝贵的意见建议
+--------------------------------------------------+

+--------------------补充--------------------+
发送邮件的服务器(smtp)并不是网址 126发送邮件的服务器是 smtp.126.com 网易163的发送邮件服务器是 smtp.163.com 所有邮箱对于这个都有说明的 还有一个就是能够使用这个功能的好象新注册的邮箱不太好用 因为网易在2006年10对邮箱进行过调整 在此之前注册的都没问题 在这之后注册的好像开通一些其他的功能并且使用了一段时间才行的
smtp服务器的链接可以在命令提示行下测试 就是使用上面的命令:
首先 telnet smtp.126.com 25
因为smtp使用的25端口提供服务的 然后就会看到
220 126.com Anti-spam GT for Coremail System (126com[071018])
输入 EHLO HELO
服务器返回
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

输入 AUTH LOGIN
服务器返回
334 dXNlcm5hbWU6
然后再输入通过base64加密的用户名和密码 就能通过命令来和服务器对话 包括发送邮件等功能

具体的如果有兴趣更多命令自己查一下
这个php的程序就是模拟这个功能来实现的

如果你用telnet直接连不上的话 说明服务器是错误的 。。

⑥ phpwind 群发邮件遇到的问题

一个好的邮件群发工具能够保障你的邮件成功的送达到用户的邮箱,而某些邮件营销人贪念一时便宜,购买小作坊式的邮件群发软件,要通过大量注册免费邮箱和换IP来大量群发,不仅浪费大量资源和时间,邮件群发的送达率也无从保证。如果你的邮件都不能到达用户邮箱,还怎么谈邮件营销的效果呢?所以说,选择一个好的邮件群发工具是至关重要的。经过大量测试发现,U-Mail邮件群发平台在各方面的表现都很是不错,U-Mail是国内首家大型邮件系统自主研发的大规模邮件群发系统。资深研发团队在电子邮件领域拥有十二年的研发经验,熟知各大邮件运营商的收发机制,和用户对邮件群发的需求,并联合国内外知名邮件运营商开通有专属绿色通道,以及白名单,IP解封等领先技术,完全保障了企业邮件群发高送达率的需求。只要一个注册一个帐号,就能轻松搞定上千万封邮件群发,赶快行动吧。

⑦ php 群发邮件

要一封邮件发给多人吗,那就添加多个收件人地址就行了,重复下面的行:
$mail->addTo('[email protected]','admin');

$mail->addTo('[email protected]','adminxxx');

如果分别给不同的人发多封邮件,那么复制你的代码再粘贴一份即可,当然定义为函数就更方便一点。

⑧ 使用php 怎么发送邮件

你这个是连接的邮件服务器出错了。
估计你本地应该没有装邮件服务器吧,一般都会用第三方的邮件服务器,如smtp.163.com,
去下载个phpmailer,从里面把class.phpmailer.php提取出来,用很好用的。

⑨ 我用phpMail写了个群发邮件,可是for循环是个死循环,不知道错在哪里了,请大家帮忙看一下,谢谢!!!

应该不会是死循环,
如果你要是群发邮件的话,,
你可以这样

for($i = 0; $i < $len; $i++) {
$mail->AddAddress($email[$i],$user_name[$i]); //其实,PHPMAIL,支持群发邮件,这么就可以达到你要的效果了。。。
}

⑩ phpmailer如何群发邮件 - 技术问答

设置好以后PHPMAILer的参数之后,有一步要添加收件人对吧?这里假设你的收件人列表存放在数组 $aMails 中:[php]$mail){? ? ? ? $oMail->SetAddress($mail);}$oMailer->Send();?>[/php]不过这里要提醒一下,群发邮件最好使用Sendmail方式,以免发送失败。每次发送的邮件数目不要太多,以免超时。可以使用分页原理进行分批发送。

阅读全文

与php群发邮件相关的资料

热点内容
社会学波普诺pdf 浏览:582
解压做食物的小视频 浏览:756
pdf怎么单独设置文件夹 浏览:472
业务逻辑程序员 浏览:659
addto新建文件夹什么意思 浏览:160
有服务器地址怎么安装软件 浏览:659
安卓如何完全清除数据 浏览:690
安卓安卓证书怎么信任 浏览:53
服务器被攻击如何解决 浏览:221
学霸变成程序员 浏览:881
c语言编译错误fatalerror 浏览:441
ipv4内部服务器地址怎么分配 浏览:463
java线程安全的方法 浏览:950
重复命令画梯形 浏览:164
在疫情就是命令 浏览:328
自己搭建一个什么服务器好玩 浏览:253
java基础马士兵 浏览:823
完美世界手游如何查看服务器 浏览:859
光遇安卓与ios什么时候互通 浏览:598
js如何运行时编译 浏览:918