1、strstr
strstr — 显示第一次找到,要查找的字符串,以及后面的字符串。大小写敏感。
//strstr函数
$email = 'liruxing1715@sina.com@qq.com';
$domain = strstr($email, '@');
echo "strstr 测试结果:{$domain}<br />";
$domain = strstr($email, '@', true);
echo "strstr 测试结果:{$domain}<br />";
/*
测试结果为:
strstr 测试结果:@sina.com@qq.com
strstr 测试结果:liruxing1715
*/
?>
注:如果要查找的字符串没有找到,那么返回 FALSE。
2、stristr
stristr — 功能和 strstr 函数一样,唯一不同的地方是大小写不明感。
3、strrchr
strrchr — 显示最后一次找到,要查找的字符串,以及后面的字符串。
//strrchr函数
$email = 'liruxing1715@sina.com@qq.com';
$domain = strrchr($email, '@');
echo "strrchr 测试结果:{$domain}<br />";
/*
测试结果为:
strrchr 测试结果:@qq.com
*/
?>
注:如果要查找的字符串没有找到,那么返回 FALSE。
4、substr
substr — 在一个字符串中,根据给出的长度进行字符截取。
格式:string substr ( string $string , int $start [, int $length ] )
参数介绍:
$string:要截取的字符串;
$start:要截取的开始位置,默认是从0开始的;如果 start 是负数,返回的字符串将从 $string 结尾处向前数第 $start 个字符开始;如果 string 的长度小于或等于 start,将返回 FALSE。
$length:截取的结束位置,如果第 $length 为空,那么返回从起始位置到结束。
//substr函数
$email = 'liruxing1715@sina.com@qq.com';
$domain = substr($email, 10);
echo "substr 测试结果:{$domain}<br />";
$domain = substr($email, 10, 5);
echo "substr 测试结果:{$domain}<br />";
$domain = substr($email, -5, 5); //字符串的最后一位为 -1
echo "substr 测试结果:{$domain}<br />";
/*
测试结果为:
substr 测试结果:15@sina.com@qq.com
substr 测试结果:15@si
substr 测试结果:q.com
*/
?>
php通过读取文本进行邮件群发的程序,也可以修改为连接数据库读取邮件地址--mysql。
<input type="file" name="fileField" id="fileField">
<?php
// 请求 PHPmailer类 文件
require_once("class.phpmailer.php");
//发送Email函数
function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) {
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "smtp.163.com"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "jessiejl"; // SMTP username 注意:普通邮件认证不需要加 @域名
$mail->Password = "1983106"; // SMTP password
$mail->From = ""; // 发件人邮箱
$mail->FromName = www.; // 发件人 ,
$mail->CharSet = "GB2312"; // 这里指定字符集!
$mail->Encoding = "base64";
$mail->AddAddress($sendto_email,$user_name);// 收件人邮箱和姓名
$mail->AddReplyTo("","中国资金管理网");
//$mail->WordWrap = 50; // set word wrap
//$mail->AddAttachment("/var/tmp/file.tar.gz");// attachment 附件1
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); //附件2
$mail->IsHTML(true); // send as HTML
$mail->Subject = $subject;
// 邮件内容 可以直接发送html文件
$mail->Body = <<<EOT
<html>
<head>
<title>Treasurery Online 周刊</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
<!--
.STYLE1 {color: #009900}
.STYLE3 {color: #000000}
a:link {
color: #333333;
}
.STYLE4 {color: #666666}
body,td,th {
font-family: 宋体;
font-size: 12px;
}
.STYLE6 {color: #FFFFFF}
.STYLE9 {color: #DCB003}
-->
</style>
</head>
<body bgcolor="#FFFFFF" >
</body>
</html>
EOT;
$mail->AltBody ="text/html";
if($mail->Send())
{
info_write("ok.txt","$user_name 发送成功");
}
else {
info_write("falied.txt","$user_name 失败,错误信息$mail->ErrorInfo");
}
}
// 发送Email函数结束
// 写入发送结果函数,错误日志记录
function info_write($filename,$info_log)
{
$info.= $info_log;
$info.="\r\n";
$fp = fopen ($filename,a);
fwrite($fp,$info);
fclose($fp);
}
//定时跳转页面 函数其中 1000是时间,1秒, 您可以自定义
function redirect($url)
{
echo "<script>
function redirect()
{
window.location.replace('$url');
}
window.setTimeout('redirect();', 15000);
</script>";
}
//读取文本 邮件地址 您也可以读 数据库
$filename = "email.txt";
$fp = fopen($filename,"r");
$contents = fread($fp,filesize($filename));
$list_email=explode()("\r\n",$contents);
$len=count($list_email);
fclose($fp);
// 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)
$i = $_GET['action'];
$i++;
if ($i<$len)
{
$rs=explode("@",$list_email[$i]);
$user_name = $rs['0'];
echo "正在发送第{$i}封({$list_email[$i]})邮件......{$user_name}";
smtp_mail($list_email[$i], 'Treasurery Online 周刊第十二期', $body, 'http://www./', $user_name);
redirect("?action=$i");
}
else {
echo "邮件全部发送完毕";
exit;
}
?>
说明:读取文章email.txt,也可以直接是qq号码,每行一个号码,然后用fget()读取每行qq号码,最后在加上qq邮箱后缀@qq.com即可,其实php邮件群发很简单,因公司需要PHP群发邮件,所以最近在做一个PHP群发程序系统,可以自由自设置多个群发邮箱,这样群发数量就有保证了,所有设置都桌面化,很直观操作!上面的PHP群发邮件,一次群发邮件数量测试在100-200之间且在本地群发即可无需上传网上空间!
第一,需要下载PHPMailer文件包phpmailer. http://phpmailer.sourceforge.net/
第二,确认你的服务器系统已经支持socket ,通过phpinfo();查看是否支持sockets(socket 是属于PHP扩展部分),如果显现为“enabled”,那就是支持了。
第三,把文件解压到你的web服务器目录下,调用类就可以了.
首先包含class.phpmailer.php,然后创建对象,设置参数,调用成员函数。
例1,做成函数方便调用
require("phpmailer/class.phpmailer.php");
function smtp_mail( $sendto_email, $subject, $body, $extra_hdrs, $user_name){
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "200.162.244.66"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "yourmail"; // SMTP username 注意:普通邮件认证不需要加 @域名
$mail->Password = "mailPassword"; // SMTP password
$mail->From = "yourmail@yourdomain.com"; // 发件人邮箱
$mail->FromName = "管理员"; // 发件人
$mail->CharSet = "GB2312"; // 这里指定字符集!
$mail->Encoding = "base64";
$mail->AddAddress($sendto_email,"username"); // 收件人邮箱和姓名
$mail->AddReplyTo("yourmail@yourdomain.com","yourdomain.com");
//$mail->WordWrap = 50; // set word wrap 换行字数
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");
$mail->IsHTML(true); // send as HTML
// 邮件主题
$mail->Subject = $subject;
// 邮件内容
$mail->Body = "
<html><head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
</head>
<body>
I love php。
</body>
</html>
";
$mail->AltBody ="text/html";
if(!$mail->Send())
{
echo "邮件发送有误 <p>";
echo "邮件错误信息: " . $mail->ErrorInfo;
exit;
}
else {
echo "$user_name 邮件发送成功!<br />";
}
}
// 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)
smtp_mail("yourmail@yourdomain.com", "欢迎使用phpmailer!", "NULL", "yourdomain.com", "username");
?>
注意:
1. 邮件的字符集设置, $mail->CharSet = "GB2312"; // 这里指定字符集!在这里我只指定为GB2312因为这样Outlook能正常显示邮件主题,我尝试过设为utf-8但在Outlook下显示乱码。
2. 如果是发送html格式的邮件,那么记得也指定
3. 如果你想用它来群发邮件的话,记得修改包含文件函数,如:
require("phpmailer/class.phpmailer.php");
改为
require_once("phpmailer/class.phpmailer.php");
否则的话会产生类的重定义。
个人认为要使用phpmailer,首先,需要有一个邮件服务器,PHP的 mail函数没有指定,应该是使用的PHP设置的SMTP。
而在这里需要具体指定,同时需要指定邮件服务器的管理者和密码。
您可能感兴趣的文章:
PHPMailer发送邮件的实例分享
phpmailer发送gmail邮件的例子
phpmailer发送网易126邮箱的例子
phpmailer发送yahoo邮件的例子
phpmailer类实现邮件群发的实例代码
PHPMailer发送邮件代码实例(ubuntu系统)
PHPMailer发送带附件邮件的例子
PHPMailer收发邮件标题、发件人、内容乱码问题的终极解决方法
PHPmailer发送邮件及乱码问题的解决
PHPMailer发送邮件中文附件名乱码的解决办法
PHPMailer邮件标题中文乱码的解决方法
PHPMailer邮件类发送邮件举例(163邮箱)
phpmailer 发送邮件中文乱码问题的解决方法总结
phpmailer发送邮件及实现密码找回功能的代码
PHPmailer邮件群发的入门例子
PHPmailer 邮件群发的范例参考
phpmailer发邮件中文乱码问题如何解决
phpmailer 类发送邮件乱码解决方法
PHPMailer批量发送邮件的实例代码
php使用phpMailer发送邮件的例子
phpmailer实现的简单openvpn用户认证的代码
PHPMailer 中文使用说明
phpmailer发送邮件的例子