美文网首页
PHP原生发送邮件

PHP原生发送邮件

作者: 程大哥T_T | 来源:发表于2017-06-19 21:49 被阅读151次

这两天琢磨了php得原生发送邮件,发现自带得mail方法不太好用,于是上网查询了好多方法,亲测以下方法能用

源代码都在 我的github

到github上下载

https://github.com/PHPMailer/PHPMailer
里面有很多文件,但是目前主要就用到两个文件
class.phpmailer.php class.smtp.php

我这个使用得是qq得smtp,如果需要其他得可以自行更改

qq的smtp服务器是:smtp.qq.com 端口号为465 或587
163smtp服务器是:smtp.163.com 端口25

下面是我进行了简单的封装

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/6/19
 * Time: 9:12
 */
class SenMail
{
    private $fromMailName='';
    private $formMailPassword='';
   private $mail='';
//密码是授权码
    function __construct($fromMailName = 'xxxxxx@qq.com', $fromMailPassword = 'xxxxxxx')
    {
        require_once('class.phpmailer.php');
        require_once('class.smtp.php');
        $this->fromMailName=$fromMailName;
        $this->formMailPassword=$fromMailPassword;
        $this->mail = new PHPMailer();
    }
    /**
     * @param string $arrayMail array集合
     * @param $senName 发件人
     * @param $title 标题
     * @param $body 内容
     */
    function sendMail($arrayMail,$senName, $title, $body)
    {
        //invoke mail() function to send mail
        // mail($toaddress, $subject, $mailcontent, $fromaddress);
        date_default_timezone_set('Asia/Shanghai');//设定时区东八区
        $fromMailPassword=$this->formMailPassword;
        $fromMailName=$this->fromMailName;
        $mail = $this->mail;
        $mail->SMTPDebug = 0;                               // Enable verbose debug output
        $mail->isSMTP();                                      // Set mailer to use SMTP
        $mail->Host = 'smtp.qq.com';  // Specify main and backup SMTP servers
        $mail->SMTPAuth = true;                               // Enable SMTP authentication
        $email = explode("@", $fromMailName);
        $mail->Username = $email[0];                 // SMTP username
        $mail->Password = $fromMailPassword;                            // SMTP password
        $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
        $mail->Port = 465;
        $mail->CharSet = 'utf-8';
//        echo $mail->Host;                                  // TCP port to connect to
        $mail->setFrom($this->fromMailName, $senName);
        // $mail->addAddress('714080794@qq.com', 'Joe User');     // Add a recipient
        foreach($arrayMail as $v) {
            $mail->addAddress($v);               // Name is optional
        }
//         $mail->addReplyTo('714034323@qq.com', 'Information');
//         $mail->addCC('714034323@qq.com');
//         $mail->addBCC('714034323@qq.com');
//         $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//         $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
        $mail->isHTML(false);                                  // Set email format to HTML
        $mail->Subject = $title;
        $mail->Body = $body;
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
        if (!$mail->send()) {
            echo 'Message could not be sent.';
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else {
            echo ucwords('Message has been sent');
        }
    }
}

index.php文件调用

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/6/16
 * Time: 15:15
 */
require "SenMail.php";
$e = new SenMail();
$toEmail = array('xxxx@163.com','xxxxx@qq.com');
$e->sendMail($toEmail,'xx程','测试2号','我是内容');

给新手的

开启qq邮箱的smtp

在QQ邮箱->设置->账号

密码是授权码,不是qq登录密码

遇到的问题

抛异常:Extesion missing: openssl
这个直接打开php.ini 查找 extension=php_openssl.dll 把注释去掉即可

如果哪里不对欢迎不吝赐教

最后如果对你有帮助请帮我点赞,谢谢

个人博客

相关文章

  • PHP原生发送邮件

    这两天琢磨了php得原生发送邮件,发现自带得mail方法不太好用,于是上网查询了好多方法,亲测以下方法能用 源代码...

  • iOS邮件发送功能

    iOS程序中邮件发送方法有三种方式,有两种原生自带方法发送邮件,另一种是使用第三方库发送邮件。使用原生发送邮件,前...

  • PHP发送邮件

    01 PHP发送邮件有内置函数mail,但是需要配置sendmail邮件服务器,这不是一个轻松的工作,需要你对邮件...

  • PHP发送邮件

    作为PHP入门开发者,常常有这种述求:自己的网站中需要添加一个使用自己的域名作为发件人邮件地址的自动发送邮件的方法...

  • iOS邮件发送开发

    一、使用iPhone系统自带邮件发送邮件 1. MFMailComposeViewController(原生)——...

  • PHP 利用QQ邮箱发送邮件「PHPMailer」

    PHPMailer PHPMailer 是一个封装好的 PHP 邮件发送类,支持发送 HTML 内容的电子邮件,以...

  • tp5 使用邮箱发送功能 PHPMailer

    PHPMailer PHPMailer 是一个封装好的 PHP 邮件发送类,支持发送 HTML 内容的电子邮件,以...

  • 谷歌邮箱开启smtp服务

    在PHP使用Google邮箱发送邮件时,当我配置完PHPMailer之后,邮件发送不成功 提示主机连接失败,原因:...

  • PHP基础回顾之E-mail(四)

    PHP的mail()函数 PHP 简易 E-Mail通过 PHP 发送电子邮件的最简单的方式是发送一封文本 ema...

  • php 简单发送邮件

    1.php教程上很简单mail()函数,我试了下是可以简单的发送,只是中文邮件接收不到。我从网上搜到PHPMail...

网友评论

      本文标题:PHP原生发送邮件

      本文链接:https://www.haomeiwen.com/subject/rkunqxtx.html