zoukankan      html  css  js  c++  java
  • php发送邮件

    1. php内置的mail()函数

    php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,所以使用mail函数往往无法成功发送email。
    自己如果熟悉SMTP协议,结合socket功能就可以编写高效稳定的邮件发送程序,但对一般用户来说太困难.好在互联网上已经有很多别人编写好的邮件发送模块,我们只需要下载后简单调用即可,十分方便.

    2. 使用封装的STMP协议的邮件类

    这里推荐 phpmailer

    第一步:需要下载PHPMailer文件包
    第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否支持sockets
    如果没有这一项就请注意: socket 是属于PHP扩展部分,编译时必须给定一个用于./configure --enable-sockets 的配置选项。
    第三步:把文件解压到你的web服务器目录下,调用类就可以了,说明:首先包含 class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体请见下面的示例代码:
    <?php
    ini_set('date.timezone','PRC');
    
    require_once('./class.phpmailer.php');
    include_once("class.smtp.php"); //可选,否则会在class.phpmailer.php中包含
    
    $mail = new PHPMailer(true); //实例化PHPMailer类,true表示出现错误时抛出异常
    
    $mail->IsSMTP(); // 使用SMTP
    
    try {
        $mail->CharSet ="UTF-8";//设定邮件编码
        $mail->Host       = "smtp.163.com";    // SMTP server
        $mail->SMTPDebug  = 1;        // 启用SMTP调试 1 = errors  2 =  messages
        $mail->SMTPAuth   = true;    // 服务器需要验证
        $mail->Port       = 25;        //默认端口
        // $mail->Port       = 465;                    // ssl验证时默认端口
        // $mail->SMTPSecure = "ssl";     
        // $mail->SMTPSecure = "ssl";                 
        // $mail->Host       = "smtp.gmail.com";     
    
    
        $mail->Username   = "qustliuchuanwei@163.com"; //SMTP服务器的用户帐号
        $mail->Password   = "fanyi303114";        //SMTP服务器的用户密码
        $mail->AddReplyTo('qustliuchuanwei@163.com', '回复'); //收件人回复时回复到此邮箱,可以多次执行该方法
        
        //收件人如果多人发送循环执行AddAddress()方法即可 还有一个方法时清除收件人邮箱ClearAddresses()
        $mail->AddAddress('1254428526@qq.com', 'liuchuanwei'); 
        
        $mail->SetFrom('qustliuchuanwei@163.com', '发件人');//发件人的邮箱
        //$mail->AddAttachment('./img/bloglogo.png');      // 添加附件,如果有多个附件则重复执行该方法
        $mail->Subject = '这里是邮件的标题' . date('Y-m-d H:i:s');
    
        //以下是邮件内容
        $mail->Body = '<h1>邮件内容</h1><font color=red>测试颜色</font>' . date('His');
        $mail->IsHTML(true);
    
        //$body = file_get_contents('tpl.html'); //获取html网页内容
        //$mail->MsgHTML(str_replace('\','',$body));
    
        $mail->Send();
        echo "Message Sent OK";
    } catch (phpmailerException $e) {
        echo $e->errorMessage(); //从PHPMailer捕获异常
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    ?>
  • 相关阅读:
    postman简单传参,上个接口的返回值作为下个接口的入参。
    python 给定URL 如何获取其内容,并将其保存至HTML文档。
    外键关联on_delete参数含义
    excel导入与导出
    序列化关系
    使用框架的各种代码示例
    国产celery简单使用
    selecte_related 函数优化查询
    django 之 配置文件
    类与缓存问题 类与属性的关系
  • 原文地址:https://www.cnblogs.com/lhat/p/7052941.html
Copyright © 2011-2022 走看看