IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 原生php发送邮件 -> 正文阅读

[PHP知识库]原生php发送邮件

一个用纯php语言发送邮件的函数,不需要安装扩展或邮件服务器,通过smtp协议(端口25)发送。适合网页调用发送简单的邮件(不能发送附件)。可适应不同的网页编码,解决了邮件标题和内容的乱码问题。体积小巧。在php7.3下测试通过.

使用方法:
1、php邮件发送函数sendmail(收件地址,标题,内容)

说明:
收件地址可以是多个邮箱,用分号(;)隔开。
使用前先设置你的发信服务器、邮箱、密码、编码。
在需要发信的文件中require这个文件,调用sendmail函数即可。
返回值:成功发送的邮件数。
调试:把文件内echo前面的注释去掉即可。

function sendmail($to, $subject, $body)
{
    $smtp_host = "smtp.qq.com"; //smtp服务器
    $user = ""; //发信邮箱
    $pass = ""; //邮箱密码、授权码
    $charset = "utf-8"; //根据自己的网页编码选择

    $header = "MIME-Version:1.0\r\n";
    $header .= "Content-Type:text/html; charset=" . $charset . "\r\n";
    $header .= "To: " . $to . "\r\n";
    $header .= "From: " . $user . "\r\n";
    $header .= "Subject: " . "=?" . strtoupper($charset) . "?B?" . base64_encode($subject) . "?=" . "\r\n";
    $header .= "Date: " . date("r") . "\r\n";
    $header .= "X-Mailer: By PHP(" . phpversion() . ")\r\n";
    list($msec, $sec) = explode(" ", microtime());
    $header .= "Message-ID: " . date("YmdHis", $sec) . "." . $msec . "\r\n";

    $sent = 0;
    $to_arr = explode(";", $to);
    foreach ($to_arr as $rcpt_to) {
        $sock = @fsockopen($smtp_host, 25, $errno, $errstr, 10);

        if ($sock && smtp_ok($sock)) {
            if (smtp_cmd($sock, "HELO localhost")) {
                if (smtp_cmd($sock, "AUTH LOGIN " . base64_encode($user))) {
                    if (smtp_cmd($sock, base64_encode($pass))) {
                        if (smtp_cmd($sock, "MAIL FROM:<" . $user . ">")) {
                            if (smtp_cmd($sock, "RCPT TO:<" . $to . ">")) {
                                if (smtp_cmd($sock, "DATA")) {
                                    if (smtp_data($sock, $header, $body)) {
                                        if (smtp_cmd($sock, "QUIT")) {
                                            $sent++;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            fclose($sock);
        }
    }
    return $sent;
}


function smtp_cmd($sock, $cmd)
{
    fputs($sock, $cmd . "\r\n");
echo htmlspecialchars($cmd);
    return smtp_ok($sock);
}


function smtp_data($sock, $header, $body)
{
    fputs($sock, $header . "\r\n");
    fputs($sock, $body . "\r\n.\r\n");
    return smtp_ok($sock);
}


function smtp_ok($sock)
{
    $response = fgets($sock, 512);
    if (!preg_match("/^[23]/", $response)) {
        fputs($sock, "QUIT\r\n");
        fgets($sock, 512);
        return FALSE;
    }
echo("<br>".$response."<br><br>");
    return TRUE;
}

文章出处:https://www.phper.red/post/101.html

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 10:58:33  更:2021-07-16 11:02:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 18:38:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码