使用PHPMailer发送邮件
首先下载PHPMailer-master,之后我们将其解压。得到以下文件。
将文件放进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接收值保持一致就可以了,亲测有效。