php 实现发送邮箱功能

不同类型的邮箱发送邮件的方式也是不同的。

下面我们就先给大家举例介绍qq邮箱开启发送邮件服务的方法。

首先我们登录qq邮箱,打开设置,选择帐户。

然后在帐户下,找到如下所示的开启服务部分。

php 实现发送邮箱功能

 

 

开启服务中,前两个选项均可实现邮件发送服务。点击开启,会出现验证提示。

确认验证,成功开启POP3/SMTP服务后,就会出现以下授权码。

那么此授权码就可以用于PHP实现邮件发送的开发方法中。

注: 每次开启生成的授权码都会不同,安全性较高。

实现发送邮件的php代码如下:

<?php

/*发送邮件方法
 *@param $to:接收者 $title:标题 $content:邮件内容
 *@return bool true:发送成功 false:发送失败
 */
function sendMail($to,$title,$content) {
    // 这个PHPMailer 就是之前从 Github上下载下来的那个项目
    require './PHPMailer/PHPMailerAutoload.php';

    $mail = new PHPMailer;
    //使用smtp鉴权方式发送邮件
    $mail->isSMTP();
    //smtp需要鉴权 这个必须是true
    $mail->SMTPAuth = true;
    // qq 邮箱的 smtp服务器地址,这里当然也可以写其他的 smtp服务器地址
    $mail->Host = 'smtp.qq.com';
    //smtp登录的账号 这里填入字符串格式的qq号即可
    $mail->Username = '2839247368@qq.com';
    // 这个就是之前得到的授权码,一共16位
    $mail->Password = 'xccemvofmwcvdgjg';
    $mail->setFrom('2839247368@qq.com', '你的主管');
    // $to 为收件人的邮箱地址,如果想一次性发送向多个邮箱地址,则只需要将下面这个方法多次调用即可
    $mail->addAddress($to);
    // 该邮件的主题
    $mail->Subject = $title;
    // 该邮件的正文内容
    $mail->Body = $content;

    // 使用 send() 方法发送邮件
    if(!$mail->send()) {
        return '发送失败: ' . $mail->ErrorInfo;
    } else {
        return "发送成功";
    }
}

// 调用发送方法,并在页面上输出发送邮件的状态
var_dump(sendMail('358179668@qq.com','会议主题','今天下午开会'));

此方法中,首先我们引入了PHPMailer中的PHPMailerAutoload.php这个文件。PHPMailer是一个用来发送电子邮件的函数包,PHPMailerAutoload.php则是一个自动加载的文件,方便快捷。

那么PHP实现邮件发送的功能,就可以通过PHPMailerAutoload.php来实现。在引入PHPMailerAutoload.php后,我们需要对其中的PHPMailer类进行实例化。

最后就可以直接调用PHPMailer类中的相关方法来实现邮件发送功能。

$mail->isSMTP()则表示使用SMTP服务;

$mail->SMTPAuth设置是否使用身份验证(必须为true);

$mail->Host设置发送方的SMTP服务器地址;

$mail->Username设置发送方的qq邮箱用户名;

$mail->Password 设置发送方的邮箱密码,注意用qq邮箱这里填写的是“授权密码”而不是邮箱的登录密码!

$mail->setFrom()用来设置发件人信息,如邮件格式说明中的发件人,这里会显示为send_user_name(xxxx@qq.com),send_user_name是当做名字显示。

$mail->addAddress()用来设置收件人的邮箱地址。

$mail->Subject 设置邮件标题;

$mail->Body 设置邮件正文。

最后使用 send() 方法发送邮件,并判断邮件是否发送成功,失败则输出错误信息$mail->ErrorInfo。

注:PHPMailer中class.phpmailer.php是主文件,用来实现具体功能,class.smtp.php是使用smtp需要的文件。

查看邮件,发送成功。

 

声明 本人博客的所有东西,部分源于网络书籍和视频,其他的是个人的理解感悟,经过自己整理撰写成博客。 本人博客均只用于个人学习、复习,不作为商业用途,如有侵权,请联系我修改或删除。 联系邮箱:15121014713@163.com
上一篇:nodejs pipe实现大文件拷贝


下一篇:阿里云镜像创建Spring Boot工厂