TP5.1实现邮件发送功能[简单]

php编程 3个月前(2019-07-16 19:40) 晓峰哥 619 0

随着项目的延伸,在一些功能上需要用到邮件发送功能,这里介绍一下使用phpmailer邮件发送的实现

PHPmailer邮件发送实现步骤

1、安装phpmaier包

 使用composer,项目目录下运行

composer require phpmailer/phpmailer
2、申请SMTP邮箱发送服务(不管用QQ的、126/163、新浪等),只要有这个服务功能申请的基本都可行

以QQ为例,首先需要开启邮箱的SMTP服务,开启之后,要记得给你的授权码,授权码一定要是最新的,我的已经开启啦,授权码也偷偷地背会了。

3、自己写发送邮件函数

 

/**发邮件
 * $config 服务邮件参数,二维数组
 * $to 接收人 逗号隔开的字符串
 * $name 接收人名称 逗号隔开的字符串
 * $suject 邮件主题
 * $body 邮件内容
 * $attachment 附件地址
 */
function Sendmail($config,$to, $name, $subject = '', $body = '', $attachment = null){
//    $config = C('THINK_EMAIL');//如果是死配置文件,打开此,关闭$config参数
    set_time_limit(0); 
    $mail = new \PHPMailer();//实例化邮件发送类
    $mail->CharSet    = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
    $mail->IsSMTP();  // 设定使用SMTP服务
    $mail->SMTPDebug  = 0;                     // 0 = 关闭SMTP调试功能
    // 1 = errors and messages
    // 2 = messages only
    $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能
    $mail->SMTPSecure = 'ssl';                 // 使用安全协议 25为tls
    $mail->Host       = $config['SMTP_HOST'];  // SMTP 服务器
    $mail->Port       = $config['SMTP_PORT'];  // SMTP服务器的端口号
    $mail->Username   = $config['SMTP_USER'];  // SMTP服务器用户名
    $mail->Password   = $config['SMTP_PASS'];  // SMTP服务器密码
    $mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
    $replyEmail       = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];
    $replyName        = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];
    $mail->AddReplyTo($replyEmail, $replyName);
    $mail->Subject    = $subject;//邮件标题
    $mail->MsgHTML($body);//邮件内容
    $to=explode(',',$to);
    $name=explode(',',$name);
    foreach($to as $k=>$v){//发送多人邮件
        $mail->AddAddress($v, $name[$k]);//增加发送人
    }
    if(is_array($attachment)){ // 添加多个附件
        foreach ($attachment as $file){
            is_file($file) && $mail->AddAttachment($file);
        }
    }else{
        is_file($attachment) && $mail->AddAttachment($attachment);//添加单个附件
    }
    return $mail->Send() ? true : $mail->ErrorInfo;
}
4、在需要发送邮件的地方调用sendmail()即可
 public function test(){
       sendMail('邮件发送配置','接收人','接收人名称','邮件标题','邮件内容','邮件附件地址(可访问的地址)');
 }

就此邮件发送功能就完毕了,是不是很简单,你也可以去试试. 

[原创内容]转载请标记来源【风之涯技术博客】和地址www.fengzhiya.cn

邮件 config mail 发送 SMTP

分享到




评论列表(共条)

关于我(About Me)

美男子(晓峰哥)

欢迎来到我的世界,有你会更精彩^@^

在这个纷繁的世界里,放下而又拿起,是多么的不容易.