PHP结合smtp类发送邮件
2017-11-11 本文已影响0人
无聊的电风扇
虽然现在大家都很少会通过邮件来交流了,但是在工作中,或者说在项目中,我们还是难免会需要发一些email或者说需要我们的项目可以发送email,今天就来简单介绍一下PHP发送email的方式。
首先,PHP手册里,给了我们一个函数
image.png
但是,当我们按照手册里的规定,配好参数之后发现,不行。
因为我们自己一般是没有SMTP服务器的。SMTP就是一种邮件传输的协议,就算我们有了SMTP服务器,还要验证等等,不太好实现,所以我们还有另一种方式来实现。
先整一个HTML页面
<form action="sendmail.php" method="post">
<p>收件人:<input type="text" name="toemail" /></p>
<p>标 题:<input type="text" name="title" /></p>
<p>内 容:<textarea name="content" cols="50" rows="5"></textarea></p>
<p><input type="submit" value="发送" /></p>
</form>
PHP文件代码
<?php
require_once "email.class.php";
//******************** 配置信息 ********************************
$smtpserver = "smtp.126.com";//SMTP服务器
$smtpserverport =25;//SMTP服务器端口
$smtpusermail = "yourEmail@126.com";//SMTP服务器的用户邮箱
$smtpemailto = $_POST['toemail'];//发送给谁
$smtpuser = "helloemail";//SMTP服务器的用户帐号(@前面的部分,类似于你的QQ号)
$smtppass = "******";//SMTP服务器的用户密码(在你开启邮箱SMTP服务时设置会系统给出的密码)
$mailtitle = $_POST['title'];//邮件主题
$mailcontent = "<h1>".$_POST['content']."</h1>";//邮件内容
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
//************************ 配置信息 ****************************
$smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = false;//是否显示发送的调试信息
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
echo "<div style='width:300px; margin:36px auto;'>";
if($state==""){
echo "对不起,邮件发送失败!请检查邮箱填写是否有误。";
echo "<a href='index.html'>点此返回</a>";
exit();
}
echo "恭喜!邮件发送成功!!";
echo "<a href='index.html'>点此返回</a>";
echo "</div>";
?>
简单的来看一下效果
image.png
image.png
好了,这样就完成了简单的文本邮件发送了。