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>标&nbsp;&nbsp;题:<input type="text" name="title" /></p>
        <p>内&nbsp;&nbsp;容:<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

好了,这样就完成了简单的文本邮件发送了。

注意:发送方使用的邮件一定要开启POP3/SMTP服务,并且记住密码,谢谢。

上一篇下一篇

猜你喜欢

热点阅读