引言:有时我们想在网页上填好表单后,表单内容能以邮件的方式发送给指定的人,那么我们可以利用phpmailer这个php函数包来完成这个需求。
一、获取邮箱授权码
邮箱授权码是邮箱帐号用于登录第三方客户端的专用密码。获取方法根据邮箱厂家的不同略有差别,我这里用的是163邮箱,获取方法比较简单,不会的可以去查一下。
二、下载phpmailer函数包
有的教程会丢给你官方的下载链接让你去下载,这样你去下载最新的phpmailer函数包后,可能会发现教程里用到的包和下载的包不一样......教程是几年前的,包却是最新的,坑啊。
我这里整理了一下,需要的朋友可以下载,提取码:ll79 。
下载解压后得到:
三、示例代码
1.HTML结构
<form action="send.php" method="post">
<input type="text" placeholder="姓名" name="name" id="name">
<input type="email" placeholder="电子邮件" name="email" id="email">
<input type="text" placeholder="联系电话" name="phone" id="phone">
<input type="text" placeholder="主题" name="subject" id="subject">
<textarea placeholder="内容" name="comments" id="comments"></textarea>
<input type="submit" name="submit" value="提交"/>
</form>
2.send.php
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->isSMTP(); // 使用SMTP服务
$mail->CharSet = "utf8";
$mail->Host = "smtp.163.com"; // 发送方的SMTP服务器地址
$mail->SMTPAuth = true;// 是否使用身份验证
$mail->Username = "evolraelc9@163.com"; // 发送方的163邮箱用户名
$mail->Password = "xxxxx"; // 发送方的邮箱授权码
$mail->SMTPSecure = "ssl"; // 使用ssl协议方式
$mail->Port = 465; // 163邮箱的ssl协议方式端口号是465/994
$mail->setFrom("evolraelc9@163.com","yessen"); // 设置发件人信息
$mail->addAddress("yessen@iexpress.ai",""); // 设置收件人信息,可设置多个,复制粘贴此行修改邮箱地址即可
$mail->addReplyTo("evolraelc9@163.com","Reply"); // 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址
//$mail->addCC("evolraelc9@163.com"); // 设置邮件抄送人,可以只写地址,上述的设置也可以只写地址
//$mail->addBCC("bbbb@163.com"); // 设置秘密抄送人
//$mail->addAttachment("bug0.jpg"); // 添加附件
$mail->Subject = "网页收到新留言啦~~"; // 邮件标题
$mail->Body = "姓名:".$_POST[name]."
邮件:".$_POST[email]."
电话:".$_POST[phone]."
主题:".$_POST[subject]."
内容:".$_POST[comments]; // 邮件正文
if(!$mail->send()){// 发送邮件
echo "Message could not be sent.";
echo "Mailer Error: ".$mail->ErrorInfo; // 输出错误信息
}else{
echo 'Message has been sent.';
}
?>
四、结果
网页上填好表单点击提交后,顺利的话可以看到网页显示:Message has been sent.
然后就可以去查看收到的邮件:
提示:有的朋友web服务器用的是云虚拟主机,需要注意的是应保证php.ini设置里的fsockopen函数为启用状态。