PHP实现发送邮件

2023-11-07

不同类型的邮箱发送邮件的方式也是不同的。
下面我们就先给大家举例介绍qq邮箱开启发送邮件服务的方法。
首先我们登录qq邮箱,打开设置,选择帐户。
在这里插入图片描述
然后在帐户下,找到如下所示的开启服务部分。
在这里插入图片描述
开启服务中,前两个选项均可实现邮件发送服务。点击开启,会出现验证提示。
确认验证,成功开启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需要的文件。
PHP实现发送邮件的完整项目源码,下载地址:链接:https://pan.baidu.com/s/1DNBAMjIohPT5q_FFQtuBgg 
提取码:xav5
查看邮件,发送成功。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP实现发送邮件 的相关文章

  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • postgreSQL 在 WAMP 上的集成

    我刚刚在 Windows 7 上安装了 postgreSQL 我正在尝试将 postgreSQL 与 WAMP 服务器集成 为此 我在 httpd conf 和 php ini 文件中进行了以下更改 1个加载模块c path to libp
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?

    我注意到在示例测试中 这两个类是内置的 功能测试 gt use Tests TestCase 单元测试 gt PHPUnit Framework TestCase 两者有什么区别 在什么情况下您会使用其中一种 PHPUnit Framewo
  • 如何将粘在一起的单词分开?

    我有很多命名不好的文件 videoofmegoingtoschool avi 是否有一个库或某种算法可以正确地将其分离 video of me going to school avi 我不认为那里有什么 我可以想象一个程序 它使用单词词典并
  • 在一个后台为MYSQL的网站上集成搜索

    我有一个位置搜索website http www jammulinks com对于一个城市 我们首先收集该城市所有可能类别的数据 如学校 学院 百货商店等 并将其信息存储在单独的表中 因为每个条目除了名称 地址和电话号码外都有不同的详细信息
  • JavaScript 中带前导零的数字发生变化

    我使用 print 语句从 php 调用 javascript 函数来打印 html 代码 并且传入一个整数 但是 在 php 中传递的值与 javascript 函数接收到的数字不匹配 我不知道为什么 这是调用 javascript 函数
  • 删除 woocommerce 店面主页标题 php

    我正在使用 woocommerce 的店面主题 我需要用 php 删除主页标题 h1 我知道 css 解决方案 但我不想使用它 因为我想将 h1 添加到该页面的其他位置 并且在一个页面中包含 2 个 h1 对 seo 不利页 我也知道删除页
  • 在 null laravel 上调用成员函数 save()

    大家好 我正在使用 laravel 5 多态关系将数据保存在数据库中 但我遇到了一些问题 当我尝试将数据保存在数据库中时 它会抛出此错误 对 null 调用成员函数 save 我不知道为什么我会遇到这个错误 我正在关注多态关系的本教程在 L
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • Windows iis 7.0 上的 APC 不稳定

    我的 IIS 非常不稳定 因为它总是由于某种与 APC 相关的原因而重新启动 服务器的规格如下 Intel R Xeon CPU 3GHZ 3GHZ 2GB RAM 64bit APC 和服务器规格 3 1 7 dev PHP Versio
  • PHP 错误:“无法通过引用传递参数 2”

    我只是需要有关这个 PHP 错误的帮助 我不太明白 致命错误 无法在第 13 行 web stud openup inactivatesession php 中通过引用传递参数 2
  • 接口中的构造方法

    接口中的构造方法不好吗 为什么人们认为有人想要实例化接口 我们想要做的是强制实现者实现构造函数 就像其他接口方法一样 接口就像一个合同 假设我有一个接口 Queue 并且我想确保实现者创建一个带有一个参数的构造函数 该构造函数创建一个单例队
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1

随机推荐

  • 安装、卸载mysql服务命令

    1 dos下用命令 进入mysql的bin目录下 mysqld nt exe install mysql 服务名字 mysqld nt exe remove mysql 服务名字 2 安装卸载mysql服务的bat文件的写法 安装mysql
  • Mac下Flutter环境配置

    最近研究Flutter Flutter环境配置弄了一下午 总算弄好了 所以整理下文章记录分享给大家 如有不全面的地方 还望大家指正 步骤如下 1 首先 下载Flutter SDK 提供两种方式 一 从git下载Flutter https g
  • “unable to find a medium containing a live file system“问题真正有效的解决方法。

    真正有效的关于ubuntu 16 04安装U盘安装出现 unable to find a medium containing a live file system 问题的解决方法 网上搜到的都是乱弹琴 一个靠谱的都没有 真正的解决方法 出现
  • maven的settings.xml,pom.xml配置

    1settings xml
  • 找不到d3dx9_43.dll丢失怎么解决(分享几种解决方法)

    为什么我们打开电脑软件或许游戏时候 电脑会报错出现d3dx9 43 dll丢失 或许找不到d3dx9 43 dll等等的提示 下面来详细介绍一下d3dx9 43 dll详细解决方法跟d3dx9 43 dll是什么 如果你的系统中没有安装或安
  • 【Python】 _tkinter.TclError: bitmap "xzw.ico" not defined

    问题描述 在Python中可以使用pyinstaller命令将 py文件打包成 exe文件 但是成功打包成 exe文件后 在Windows系统上运行却出现了如下错误 tkinter TclError bitmap xzw ico not d
  • ESP32-CAM网络摄像头系列-01-基于RTSP协议的局域网视频推流/拉流的简单实现

    前言 由于项目需要 最近开始开坑关于ESP32 CAM系列的RTSP网络摄像头系列 该文章为该系列的第一篇文章 用于记录项目开发过程 本文解决的问题 使用ESP32 CAM获取图像数据 并通过RTSP协议将获取到的视频流传输到上位机进行显示
  • mysql存储loop_mysql存储loop

    mysql数据库存储过程 存储过程简介 存储过程可以简单理解为一条或者多条sql语句的集合 存储过程用来实现将一组关于表的操作的sql语句当作一个整体来执行 存储过程在实际应用中最主要的特点的事提高执行效率以及sql代码封装功能 特别是sq
  • 今天我要写Code吗?

    Manager还能不能写Code 如果你刚从技术开发职位升迁到管理职位 这会是一个在相当长一段时间内非常纠结你的问题 如果你之前技术做得还不错 算是个 高手 你应该会更加纠结一点 也许每天都在挣扎着 今天我要写Code吗 在深入探讨这个问题
  • 基础设计三——FPGA学习笔记<4>

    前置学习 基础设计二 FPGA学习笔记 3 基础设计一 FPGA学习笔记 2 verilog语法 FPGA学习笔记 1 参考书目 野火FPGA Verilog 开发实战指南 目录 一 串口 RS232 lt 1 gt 简介 lt 2 gt
  • Qt5.3.1编译QOCI链接oracle

    一 Qt 我下载的是mingw版本的 qt opensource windows x86 mingw482 opengl 5 3 1 exe 安装 安装的时候记得把source选上 建议全选 电脑不差3点多G的空间吧 安装好后 我们设置一下
  • IDC存储软件定义的七个主要类别

    在DoStor上看到一篇文章 提到IDC存储软件定义的七个主要类别 1 数据备份与恢复 2 归档软件 3 复制软件 4 存储管理软件 5 存储设备管理软件 6 存储基础架构软件 7 文件系统软件 对号入坐 我在学习和工作中涉及了其中的1 2
  • Git密码(登录凭证)的保存和重置 Mac

    Git密码 登录凭证 的保存和重置 Mac 1 凭证系统 2 命令行操作 store模式 2 1 凭证存储 2 2 凭证删除 3 命令行操作 osxkeychain模式 Mac用户 3 1 辅助工具安装 3 2 凭证存储 3 3 凭证删除
  • osg报错:错误(活动) E0757 变量 “GLenum“ 不是类型名

    前言 osg报错 错误 活动 E0757 变量 GLenum 不是类型名 原因 osg中封装了openGL的库 感觉vs2019无法识别openGL相关的部分 解决 vs2019中配置 预处理器
  • DELL R服务器配置IPMI

    转载自https blog csdn net hanzheng260561728 article details 107661274 使用iDRAC设置实用程序 在启动过程中按F2 设置iDRAC IP 打开受管理的系统 在开机自检 POS
  • 如何将node.js部署到服务器上

    注 本文只是简易的单个node js文件 名为server js 运行 是为了给前端项目写一个数据接口 环境 阿里云服务器 ubuntu 64bit xshell 1 首先登录阿里云添加安全组规则 开放程序运行时访问的端口号 本文为8000
  • 使用 selenium 连接已经打开的 chrome 浏览器

    1 方法一 新建文件夹test 进入chrome exe 目录 打开CMD 输入 chrome exe remote debugging port 9999 user data dir D test 弹出 浏览器框 pycharm运行脚本如
  • springmvc代码正确但是报错404解决以及乱码解决

    1 如果代码正确 但是运行报错404的话 可能是jar包没有导入到maven上 可以到Project Structure 中的Artifacts中 找到对应的项目 创建一个lib文件夹 添加jar包到里面 如果没有导入jar包的话 可以在W
  • Linux nohup后台命令基础详解

    一 前言 因为经常使用Xshell进行服务器代码的运行 但是每次到关机后 或者是关掉Xshell连接窗口 在服务器上的命令 操作也就断掉了 这不得不找到了一个Linux命令 nohup 二 基本用法 nohup command arg 拿p
  • PHP实现发送邮件

    不同类型的邮箱发送邮件的方式也是不同的 下面我们就先给大家举例介绍qq邮箱开启发送邮件服务的方法 首先我们登录qq邮箱 打开设置 选择帐户 然后在帐户下 找到如下所示的开启服务部分 开启服务中 前两个选项均可实现邮件发送服务 点击开启 会出