欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

如何用php结合 phpmailer 发送邮件 有大用

shiping1 的头像

 php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail
或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能.
所以使用mail函数往往无法成功发送email.
 自己如果熟悉SMTP协议,结合socket功能就可以编写高效稳定的邮件发送程序,但对一般用户来说太困难.好在互联网上已经有很多别人编写好的邮件发送模块,我们只需要下载后简单调用即可,十分方便.
 在此我们给用户推荐一个php下功能十分强大,易用且免费的SMTP类模块-PHPMailer,(下载地址http://downinfo.myhostadmin.net/mail/PHPMailer-BMH_v5.0.0.zip)

PHPMailer是一个用于发送电子邮件的PHP函数包。它提供的功能包括:
*.在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址
*.支持多种邮件编码包括:8bit,base64,binary和quoted-printable
*.支持SMTP验证
*.支持冗余SMTP服务器
*.支持带附件的邮件和Html格式的邮件
*.自定义邮件头
*.支持在邮件中嵌入图片
*.调试灵活
*.经测试兼容的SMTP服务器包括:
Sendmail,qmail,Postfix,Imail,Exchange等
*.可运行在任何平台之上



 下载该组件后,按如下示例编写代码即可实现php在线发送邮件.
 

  一:前台表单

<html>
<body>
<h3>phpmailer Unit Test</h3>
请你输入<font color="#FF6666">收信</font>的邮箱地址:
<form name="phpmailer" action="send.php" method="post">
<input type="hidden" name="submitted" value="1"/>
邮箱地址: <input type="text" size="50" name="address" />
<br/>
<input type="submit" value="发送"/>
</form>
</body>
</html>

 二:后台PHP程序


 <?php
require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录
$mail = new PHPMailer(); //建立邮件发送类
$address = $_POST['address']; 
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->Host = "mail.xxxxx.com"; // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "user@xxxx.com"; // 邮局用户名(请填写完整的email地址)
$mail->Password = "******"; // 邮局密码

$mail->From = "user@xxxx.com"; //邮件发送者email地址
$mail->FromName = "您的名称";
$mail->AddAddress("$address", "");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddReplyTo("", "");

//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式

$mail->Subject = "PHPMailer测试邮件"; //邮件标题
$mail->Body = "Hello,这是测试邮件"; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略

if(!$mail->Send())
{
 echo "邮件发送失败. <p>";
 echo "错误原因: " . $mail->ErrorInfo;
 exit;
}

echo "邮件发送成功";
?>

参考网址: http://blog.51yip.com/php/910.html/comment-page-1

来自 http://west263.com/faq/list.asp?unid=548



下面是自己亲自做的 有大用
 

<?php
/*
 * Created on 2013-1-19
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
 
include("class/class.phpmailer.php"); //匯入PHPMailer類別 
 
$mail= new PHPMailer(); //建立新物件 
$mail->IsSMTP(); //設定使用SMTP方式寄信 
$mail->SMTPAuth = true; //設定SMTP需要驗證 
//$mail->SMTPSecure = "ssl";  // Gmail的SMTP主機需要使用SSL連線 
$mail->Host = "smtp.bbbb.com"; //Gamil的SMTP主機
$mail->Port = 25;  //Gamil的SMTP主機的SMTP埠位為465埠。 
$mail->CharSet = "gb2312"; //設定郵件編碼 
 
$mail->Username = "bbbb@bbbb.com"; //設定驗證帳號
$mail->Password = "aaaaaa"; //設定驗證密碼
 
$mail->From = 'bbbb@bbbb.com'; //設定寄件者信箱
$mail->FromName = utf82gb($_POST['title']); //設定寄件者姓名 
 
$title =  '来自于http://'.$_SERVER['HTTP_HOST'].' '.$_POST['title'].date('Y-m-d H:s:i').'报名';
$title = utf82gb($title);
$mail->Subject =$title; //設定郵件標題 
//邮件正文
$body = '来自于http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'<br />
';
 
$body .= $_POST['title']."于".date('Y-m-d H:s:i')."进行网上报名".'<br />
';
$body .= "性别为:".$_POST['sex'].'<br />
';
$body .= "电话为:".$_POST['tel'].'<br />
';
$body .= "专业为:".$_POST['zuauye'].'<br />
';
$body .= "QQ为:".$_POST['qq'].'<br />
';
$body .= "电子邮件为:".$_POST['email'].'<br />
';
$body = utf82gb($body);
 
$mail->Body = $body; //設定郵件內容 
$mail->IsHTML(true); //設定郵件內容為HTML 
$mail->AddAddress('111111111@qq.com', utf82gb("张三")); //設定收件者郵件及名稱 
$mail->AddAddress('2222222@qq.com', utf82gb("李四")); //設定收件者郵件及名稱 
$mail->AddAddress('3333333@qq.com', utf82gb("王五")); //設定收件者郵件及名稱
 
if(!$mail->Send()) { 
echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
 
 
?>
普通分类: