php邮件发送-phpmailer

2024-05-10 00:32
文章标签 php 邮件 发送 phpmailer

本文主要是介绍php邮件发送-phpmailer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提供两种利用phpmailer发送邮件的方法:

准备:配置好163或者qq的smtp/imap服务(具体怎么配置,找度娘),phpmailer的两个类(phpmailer、smtp)(自己下载)。

第一种: 网易转发

header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
ini_set("max_execution_time",-1); //添加附件时的忘网络问题导致执行时间过长
require 'class.phpmailer.php';
require 'class.smtp.php';
try {$mail = new PHPMailer(true); $mail->IsSMTP();$mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码$mail->SMTPAuth   = true;                  //开启认证$mail->Port       = 25;                    $mail->Host       = "smtp.163.com"; $mail->Username   = "lyf3312@163.com";    $mail->Password   = "WDMM415150";            //$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could  not execute: /var/qmail/bin/sendmail ”的错误提示$mail->AddReplyTo("lyf3312@163.com","李艳飞");//回复地址$mail->From       = "lyf3312@163.com";$mail->FromName   = "www.baidu.com";$to = "924634623@qq.com";$mail->AddAddress($to);$mail->Subject  = "phpmailer测试标题";$mail->Body = "<h1>phpmail演示</h1>这是php点点通(<font color=red>www.baidu.com</font>)对phpmailer的测试内容";$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略$mail->WordWrap   = 80; // 设置每行字符串的长度$mail->AddAttachment("C:/Users/Administrator/Desktop/text.mp4");  //可以添加附件$mail->IsHTML(true); $mail->Send();echo '邮件已发送';
} catch (phpmailerException $e) {echo "邮件发送失败:".$e->errorMessage();
}

第二种:腾讯转发

include("./class.phpmailer.php"); //下载phpmailer并include两个文件 include("./class.smtp.php");$mail = new PHPMailer();     //得到一个PHPMailer实例 $mail->CharSet = "utf-8"; //设置采用utf-8中文编码(内容不会乱码) $mail->IsSMTP();                    //设置采用SMTP方式发送邮件 $mail->Host = "smtp.qq.com ";    //设置邮件服务器的地址(若为163邮箱,则是smtp.163.com) $mail->Port = 25;                           //设置邮件服务器的端口,默认为25 $mail->From     = "924634623@qq.com"; //设置发件人的邮箱地址 $mail->FromName = "李艳飞";           //设置发件人的姓名(可随意) $mail->SMTPAuth = true;                   //设置SMTP是否需要密码验证,true表示需要 $mail->Username="924634623@qq.com";    //(邮件转发时smtp账号,即开通smtp服务的邮箱) $mail->Password = "wrgomczwlipobaib"; //使用最新的授权码$mail->Subject = "你好啊";    //主题 $mail->AltBody = "text/html";                                // optional, comment out and test $mail->Body = "你的邮件的内容,可以是html代码";      //内容   $mail->IsHTML(true);    //内容主体中可以包含html   $mail->WordWrap = 50;                                 //设置每行的字符数 $mail->AddReplyTo("924634623@qq.com ","lyf");     //设置回复的收件人的地址(from可随意) $mail->AddAddress("lyf3312@163.com","liyanfei");     //设置收件的地址(to可随意) ,可循环添加多个//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称// $mail->addAttachment('./d.jpg','mm.jpg');//同样该方法可以多次调用 上传多个附件$mail->addAttachment('C:/Users/Administrator/Desktop/5.jpg','test.jpg');$res = $mail->Send();  if($res){echo "发送邮件成功!";
}else{echo "发送邮件失败!";
}
上面这个是利用默认25端口,

下面这个是开启ssl,利用465端口。

<?php
function sendMail($to,$title,$content){//引入PHPMailer的核心文件 使用require_once包含避免出现PHPMailer类重复定义的警告require_once("./class.phpmailer.php"); require_once("./class.smtp.php");//实例化PHPMailer核心类$mail = new PHPMailer();//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式//开启调试模式后,会输出发送邮件的各个阶段的输出信息//$mail->SMTPDebug = 1;//使用smtp鉴权方式发送邮件$mail->isSMTP();//smtp需要鉴权 这个必须是true$mail->SMTPAuth=true;//链接qq域名邮箱的服务器地址$mail->Host = 'smtp.qq.com';//设置使用ssl加密方式登录鉴权$mail->SMTPSecure = 'ssl';//设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587$mail->Port = 465;//设置smtp的helo消息头 这个可有可无 内容任意$mail->Helo = 'Hello smtp.qq.com Server';//设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名$mail->Hostname = 'http://www.dest.cn';//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码$mail->CharSet = 'UTF-8';//设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名$mail->FromName = 'TEST lyf3312'; //发件人人名//smtp登录的账号 这里填入字符串格式的qq号即可$mail->Username ='924634623@qq.com';//smtp登录的密码 使用生成的授权码(就刚才叫你保存的最新的授权码)$mail->Password = 'wrgomczwlipobaib'; //wrgomczwlipobaib//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”$mail->From = '924634623@qq.com';//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false$mail->isHTML(true); //设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大$mail->addAddress($to,'test qq邮箱在线通知');//收件人人名//添加多个收件人 则多次调用方法即可// $mail->addAddress('xxx@163.com','lsgo在线通知');//添加该邮件的主题$mail->Subject = $title;//添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件$mail->Body = $content;//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称// $mail->addAttachment('./d.jpg','mm.jpg');//同样该方法可以多次调用 上传多个附件// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');$status = $mail->send();//简单的判断与提示信息if($status) {return true;}else{return false;}
}$flag = sendMail('lyf3312@163.com','test lyf3312在线通知','恭喜你成功加入test lyf3312实验室,开启你的学习之旅吧!');
if($flag){echo "发送邮件成功!";
}else{echo "发送邮件失败!";
}
其实,本人亲测,是否开启ssl,都是可以转发的,可能是腾讯出于安全方面考虑,建议用ssl吧。


这篇关于php邮件发送-phpmailer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974925

相关文章

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

Android中如何实现adb向应用发送特定指令并接收返回

1 ADB发送命令给应用 1.1 发送自定义广播给系统或应用 adb shell am broadcast 是 Android Debug Bridge (ADB) 中用于向 Android 系统发送广播的命令。通过这个命令,开发者可以发送自定义广播给系统或应用,触发应用中的广播接收器(BroadcastReceiver)。广播机制是 Android 的一种组件通信方式,应用可以监听广播来执行

如何将文件夹里的PHP代码放到一个文件里

find ./dir -name "*.php" -exec 'cat' {} \; > dir.out