使用PHPMailer发送邮件

时间:2022-09-24 17:13:15

首先下载PHPMailer-master,之后我们将其解压。得到以下文件。

使用PHPMailer发送邮件

将文件放进php环境中,后在根目录新建email.php,代码如下:

<?php  
header('Content-Type:text/html;Charset=utf-8');  
require './PHPMailerAutoload.php';  
$mail = new PHPMailer;  
$mail->isSMTP();                                      // 设置邮件使用SMTP  
$mail->Host = 'smtp.163.com';                         // 邮件服务器地址  
$mail->SMTPAuth = true;                               // 启用SMTP身份验证  
$mail->CharSet = "UTF-8";                             // 设置邮件编码  
$mail->setLanguage('zh_cn');                          // 设置错误中文提示  
$mail->Username = '18668999188@163.com';              // SMTP 用户名,即个人的邮箱地址  
$mail->Password = '********';                         // SMTP 密码,即个人的邮箱密码  
$mail->SMTPSecure = 'tls';                            // 设置启用加密,注意:必须打开 php_openssl 模块  
$mail->Priority = 3;                                  // 设置邮件优先级 1:高, 3:正常(默认), 5:低  
$mail->From = '18668999188@163.com';                  // 发件人邮箱地址  
$mail->FromName = '王家逸';                            // 发件人名称  
$mail->addAddress(htmlspecialchars($_POST['addressee']));     // 添加接受者  
/* $mail->addAddress('ellen@example.com');                    // 添加多个接受者  
$mail->addReplyTo('info@example.com', 'Information'); */      // 添加回复者  
$mail->addCC(htmlspecialchars($_POST['chaosong']));           // 添加抄送人  
/* $mail->addCC('mail3@qq.com');   */                         // 添加多个抄送人  
$mail->ConfirmReadingTo = '18668999188@163.com';              // 添加发送回执邮件地址,即当收件人打开邮件后,会询问是否发生回执  
/* $mail->addBCC('100227760@qq.com');      */                 // 添加密送者,Mail Header不会显示密送者信息  
$mail->WordWrap = 50;                                         // 设置自动换行50个字符  
$mail->addAttachment($_FILES["file"]["name"]);                // 添加附件  
/* $mail->addAttachment('/tmp/image.jpg', 'one pic'); */      // 添加多个附件  
$mail->isHTML(true);                                          // 设置邮件格式为HTML  
$mail->Subject = htmlspecialchars($_POST['title']);
$mail->Body    = htmlspecialchars($_POST['remarks']);         //html版本
$mail->AltBody = 'txt';                                       //txt版本

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
    exit;
}
echo '发送成功!';
?>

需要注意的是:SMTP密码通常为你发送邮箱的邮箱密码,但也有可能是一个专为SMTP设置的独立密码。

 

同样在根目录下我们新建一个index.html/php来负责给email.php传值,代码如下:

<html>
<head>
    <title>编辑邮件</title>
</head>
<body>
<form action="email.php" method="post" enctype="multipart/form-data">
    发送至:<input type="text" name="addressee" /><br />
    主题:<input type="text" name="title" /><br />
    抄送:<input type="text" name="chaosong" /><br />
    上传附件:<input type="file" name="file" id="file" /><br />
    备注:<textarea name="remarks" cols ="50" rows = "3"></textarea><br />
    <input name="submit" type="submit" /><br />
</form>
</body>
</html>

form里的值与后端email接收值保持一致就可以了,亲测有效。