我的PHPMailer_v5.1 使用

时间:2022-08-12 18:14:20
<?php
/**
* Simple example script using PHPMailer with exceptions enabled
* @package phpmailer
* @version $Id$
*/

require_once'/class.phpmailer.php';
require_once'/class.smtp.php'; 
try {
    $mail = new PHPMailer(true); //New instance, with exceptions enabled

    $body             = file_get_contents('contents.html');
    $body             = preg_replace('/\\\\/','', $body); //Strip backslashes

    $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.163.com"; // SMTP server
    $mail->Username   = "1585358****@163.com";     // SMTP server username
    $mail->Password   = "*******";            // SMTP server password

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

    $mail->AddReplyTo("1585358****@163.com","First Last");

    $mail->From       = "1585358****@163.com";
    $mail->FromName   = "First Last";

    $to = "309407***@qq.com";

    $mail->AddAddress($to);

    $mail->Subject  = "First PHPMailer Message";

    $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发送邮件, 可以用PHPMailer。PHPMailer是一个用于发送电子邮件的PHP函数包

那么PHPMailer怎么用呢?

第一步当然是下载PHPMailer包,有两个版本 、php4版本和php5/6版本的 下载自己合适的

下载完以后 ,看到里面有很多文件 , 其实大部分都用不到

然后进入 test看到testemail.php 文件 这里面是一个例子

代码类似

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

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

$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.163.com"; // SMTP server
$mail->Username = "yinxiaoluan110@163.com"; // SMTP server username
$mail->Password = "*********"; // 填写你自己邮箱的密码

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

$mail->AddReplyTo("yinxiaoluan110@163.com","First Last");

$mail->From = "yinxiaoluan110@163.com"; //发件人邮箱
$mail->FromName = “小白"; //发件人 

$to = "745888750@qq.com"; //收件人 

$mail->AddAddress($to);

$mail->Subject = "First PHPMailer Message";

$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();
}
?>
上面代码 ,有注释说明的比较重要 需要认真填写一下

有不懂SMTP服务器的 可以参考一下 wordpress发送解决方法 这篇文章

注意:
1.如果报错 :Could not execute: /var/qmail/bin/sendmail

那么你需要把 配置文件中的 $mail->IsSendmail(); 注释掉
2.如果你用的是空间
报错:SMTP Error: Could not connect to SMTP host
那么你需要 修改
class.smtp.php
$this->smtp_conn = @fsockopen
改为
$this->smtp_conn = @pfsockopen
因为很多空间把fsockopen禁用了!

按照以上步骤 , 您的邮件应该已经发送成功了

其实 phpmailer 包我们真正用到的文件只有 class.phpmailer.php和class.smtp.php
 

 

require_once('class.phpmailer.php');//引入类库文件
$mail = new PHPMailer(); //实例化
$mail->IsSMTP(); // 启用SMTP
$mail->Host = "smtp.sina.com"; //SMTP服务器 这里以新浪邮箱为例子
$mail->Port = 25;  //邮件发送端口
$mail->SMTPAuth   = true;  //启用SMTP认证
$mail->CharSet  = "UTF-8"; //字符集
$mail->Encoding = "base64"; //编码方式
$mail->Username = "test@sina.com";  //你的邮箱
$mail->Password = "123";  //你的密码
$mail->Subject = "测试邮件标题"; //邮件标题
$mail->From = "test@sina.com";  //发件人地址(也就是你的邮箱)
$mail->FromName = "发件人测试姓名";  //发件人姓名
$address = "test@sina.com";//收件人email
$mail->AddAddress($address, "某某人");//添加收件人地址,昵称
$mail->AddAttachment("test,zip","重命名附件.zip"); // 添加附件,并重命名
$mail->IsHTML(true); //支持html格式内容
$mail->Body = "这是一份测试邮件,此为邮件内容"; //邮件内容
//发送
if(!$mail->Send()) {
 echo "fail: " . $mail->ErrorInfo;
} else {
 echo "ok";
}

 

 

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

require_once'/class.phpmailer.php';
require_once'/class.smtp.php'; 
try {
    $mail = new PHPMailer(true); //New instance, with exceptions enabled

    //$body             = file_get_contents('contents.html');
    //$body             = preg_replace('/\\\\/','', $body); //Strip backslashes

    $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.163.com"; // SMTP server
    $mail->Username   = "1585358****@163.com";     // SMTP server username
    $mail->Password   = "**********";            // SMTP server password

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

    $mail->AddReplyTo("1585358****@163.com","First Last");

    $mail->From       = "1585358****@163.com";
    $mail->FromName   = "First Last";

    $to = "******@qq.com";

    $mail->AddAddress($to);

    $mail->Subject  = "First PHPMailer Message";

    $mail->Body="这是我的测试邮件,the test email";

    $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->CharSet  = "UTF-8"; //字符集

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

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

    $mail->Send();
    echo 'Message has been sent.';
} catch (phpmailerException $e) {
    echo $e->errorMessage();
}
?>
<?php
require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录
$mail = new PHPMailer(); //建立邮件发送类
$address = $_POST['address'];
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->CharSet='UTF-8';// 设置邮件的字符编码
$mail->Host = "mail.xxxxx.***"; // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Port = "***"; //SMTP端口
$mail->Username = ***@xxxx.***; // 邮局用户名(请填写完整的email地址)
$mail->Password = "******"; // 邮局密码
$mail->From = ***@xxxx.***; //邮件发送者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 "邮件发送成功";
?>