PHP邮件群发程序
[代码] php代码
001 |
<?php |
002 |
003 |
// 请求 PHPmailer类 文件 |
004 |
require_once ( "class.phpmailer.php" ); |
005 |
006 |
//发送Email函数 |
007 |
function smtp_mail ( $sendto_email , $subject , $body , $extra_hdrs , $user_name ) { |
008 |
$mail = new PHPMailer(); |
009 |
$mail ->IsSMTP(); // send via SMTP |
010 |
$mail ->Host = "smtp.163.com" ; // SMTP servers |
011 |
$mail ->SMTPAuth = true; // turn on SMTP authentication |
012 |
$mail ->Username = "jessiejl" ; // SMTP username 注意:普通邮件认证不需要加 @域名 |
013 |
$mail ->Password = "1983106" ; // SMTP password |
014 |
015 |
$mail ->From = "" ; // 发件人邮箱 |
016 |
$mail ->FromName = "WWW.NIUTW.COM" ; // 发件人 ,比如 唯美搭配网 |
017 |
018 |
$mail ->CharSet = "GB2312" ; // 这里指定字符集! |
019 |
$mail ->Encoding = "base64" ; |
020 |
021 |
$mail ->AddAddress( $sendto_email , $user_name ); // 收件人邮箱和姓名 |
022 |
$mail ->AddReplyTo( "" , "Web之家" ); |
023 |
024 |
//$mail->WordWrap = 50; // set word wrap |
025 |
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件1 |
026 |
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); //附件2 |
027 |
$mail ->IsHTML(true); // send as HTML |
028 |
$mail ->Subject = $subject ; |
029 |
030 |
// 邮件内容 可以直接发送html文件 |
031 |
$mail ->Body = <<<EOT |
032 |
<html> |
033 |
<head> |
034 |
<title>Treasurery Online 周刊</title> |
035 |
<meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > |
036 |
<style type= "text/css" > |
037 |
<!-- |
038 |
.STYLE1 {color: #009900} |
039 |
.STYLE3 {color: #000000} |
040 |
a:link { |
041 |
color: #333333; |
042 |
} |
043 |
.STYLE4 {color: #666666} |
044 |
body,td,th { |
045 |
font-family: 宋体; |
046 |
font-size: 12px; |
047 |
} |
048 |
.STYLE6 {color: #FFFFFF} |
049 |
.STYLE9 {color: #DCB003} |
050 |
051 |
|
052 |
053 |
--> |
054 |
</style> |
055 |
</head> |
056 |
<body bgcolor= "#FFFFFF" > |
057 |
058 |
</body> |
059 |
</html> |
060 |
EOT; |
061 |
$mail ->AltBody = "text/html" ; |
062 |
if ( $mail ->Send()) |
063 |
{ |
064 |
info_write( "ok.txt" , "$user_name 发送成功" ); |
065 |
} |
066 |
else { |
067 |
info_write( "falied.txt" , "$user_name 失败,错误信息$mail->ErrorInfo" ); |
068 |
} |
069 |
} |
070 |
// 发送Email函数结束 |
071 |
072 |
// 写入发送结果函数,错误日志记录 |
073 |
function info_write( $filename , $info_log ) |
074 |
{ |
075 |
$info .= $info_log ; |
076 |
$info .= "\r\n" ; |
077 |
$fp = fopen ( $filename ,a); |
078 |
fwrite( $fp , $info ); |
079 |
fclose( $fp ); |
080 |
} |
081 |
082 |
//定时跳转页面 函数 其中 1000是时间,1秒, 您可以自定义 |
083 |
function redirect( $url ) |
084 |
{ |
085 |
echo "<script> |
086 |
function redirect() |
087 |
{ |
088 |
window.location.replace( '$url' ); |
089 |
} |
090 |
window.setTimeout( 'redirect();' , 15000); |
091 |
</script>"; |
092 |
} |
093 |
094 |
//读取文本 邮件地址 您也可以读 数据库 |
095 |
$filename = "email.txt" ; |
096 |
$fp = fopen ( $filename , "r" ); |
097 |
$contents = fread ( $fp , filesize ( $filename )); |
098 |
$list_email = explode ( "\r\n" , $contents ); |
099 |
$len = count ( $list_email ); |
100 |
fclose( $fp ); |
101 |
102 |
// 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名) |
103 |
$i = $_GET [ 'action' ]; |
104 |
$i ++; |
105 |
if ( $i < $len ) |
106 |
{ |
107 |
$rs = explode ( "@" , $list_email [ $i ]); |
108 |
$user_name = $rs [ '0' ]; |
109 |
echo "正在发送第{$i}封({$list_email[$i]})邮件......{$user_name}" ; |
110 |
smtp_mail( $list_email [ $i ], 'Treasurery Online 周刊第十二期' , $body , 'http://www.yem120.com/' , $user_name ); |
111 |
redirect( "?action=$i" ); |
112 |
} |
113 |
else { |
114 |
echo "邮件全部发送完毕" ; |
115 |
exit ; |
116 |
} |
117 |
118 |
?> |
[代码] 小思维
1 |
上面的读取文章email.txt,也可以直接是qq号码,每行一个号码,然后用fget()读取每行qq号码,最后在加上qq邮箱后缀 @qq.com即可 |