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

相关文章

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

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的

PHP防止SQL注入的方法(2)

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE”); DROP TA

PHP防止SQL注入的方法(1)

(1)mysql_real_escape_string – 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下: $sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_r

Linux系统安装php开发环境

Linux系统centos6.5 PHP5.6 MySQL5.6 Nginx1.7 yum安装依赖库 yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison \libtool-ltdl-devel li

PHP字符串全排列

方法一: $str = 'abc';$a =str_split($str);perm($a, 0, count($a)-1);function perm(&$ar, $k, $m) {if($k == $m){ echo join('',$ar), PHP_EOL;}else {for($i=$k; $i<=$m; $i++) {swap($ar[$k], $ar[$i]);perm($ar