• 技术文章 >后端开发 >php教程

    PHP实现SMTP邮件发送的代码示例

    不言不言2018-11-17 17:04:16转载1166
    当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你!

    本篇文章给大家带来的内容是关于PHP实现SMTP邮件发送的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题。本博客后台,当博主回复留言时候,会自动给网友发一封有新回复提示的邮件也是用的本文这个方法实现的。

    smtp类发送邮件的方法其实很简单,也很稳定,类是别人已经写好的了,你只需要调用就行了。几行php源码简单的配置就能发邮件,是不是很期待的试一试呢!

    <?php
      
    /**
     * @param $address mixed 收件人 多个收件人/或需要设置收件人昵称时为数组 array($address1,$address1)/array(array('address'=>$address1,'nickname'=>$nickname1),array('address'=>$address2,'nickname'=>$nickname2))
     * @param $subject string 邮件主题
     * @param $body string 邮件内容
     * @param $file string 附件
     * @return bool|string 发送成功返回true 反之返回报错信息
     * @throws Exception
     */
    function send_mail_by_smtp($address, $subject, $body, $file = '')
    {
     require('./PHPMailer-master/Exception.php');
     require('./PHPMailer-master/PHPMailer.php');
     require('./PHPMailer-master/SMTP.php');
      
     //date_default_timezone_set("Asia/Shanghai");//设定时区东八区
      
     $mail = new PHPMailer();
      
     //Server settings
     $mail->SMTPDebug = 2;
     $mail->isSMTP();     // 使用SMTP方式发送
     $mail->Host = 'smtp.126.com';    // SMTP邮箱域名
     $mail->SMTPAuth = true;    // 启用SMTP验证功能
     $mail->Username = "*****@126.com";   // 邮箱用户名(完整email地址)
     $mail->Password = "*****";    // smtp授权码,非邮箱登录密码
     $mail->Port = 25;
     $mail->CharSet = "utf-8";    //设置字符集编码 "GB2312"
      
     // 设置发件人信息,显示为 你看我那里像好人(xxxx@126.com)
     $mail->setFrom($mail->Username, '你看我那里像好人');
      
     //设置收件人 参数1为收件人邮箱 参数2为该收件人设置的昵称 添加多个收件人 多次调用即可
     //$mail->addAddress('********@163.com', '你看我那里像好人');
      
     if (is_array($address)) {
     foreach ($address as $item) {
     if (is_array($item)) {
     $mail->addAddress($item['address'], $item['nickname']);
     } else {
     $mail->addAddress($item);
     }
     }
     } else {
     $mail->addAddress($address, 'adsf');
     }
      
      
     //设置回复人 参数1为回复人邮箱 参数2为该回复人设置的昵称
     //$mail->addReplyTo('*****@126.com', 'Information');
      
     if ($file !== '') $mail->AddAttachment($file); // 添加附件
      
     $mail->isHTML(true); //邮件正文是否为html编码 true或false
     $mail->Subject = $subject; //邮件主题
     $mail->Body = $body;  //邮件正文 若isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取的html文件
     //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; //附加信息,可以省略
      
     return $mail->Send() ? true : 'ErrorInfo:' . $mail->ErrorInfo;
    }
      
    $path = '.\wpic907.jpg';
    $ret = send_mail_by_smtp('*******@163.com', 'PHPMailer邮件标题', 'PHPMailer邮件内容', $path);

    以上就是PHP实现SMTP邮件发送的代码示例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
    专题推荐:SMTP
    上一篇:php实现从数据库导出百万级数据的代码实例(CSV文件) 下一篇:php中的goto的用法实例(代码)
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP 随机数 C扩展随机数• PHP预定义变量9大超全局数组用法详解_php基础• 写一段简单的PHP建立文件夹代码_php基础• 浅析php中json_encode()和json_decode()_php基础• php反射类ReflectionClass用法分析_php技巧
    1/1

    PHP中文网