php发送qq邮件实例讲解,php发送邮件实例讲解视频

本文目录一览:

php如何发送邮件

你好,用这个邮件类,需要在调用时,填写一个smtp服务器和你的用户名密码。

?php

set_time_limit(600);

/*

* 邮件发送类

*/

class smail {

//您的SMTP 服务器供应商,可以是域名或IP地址

var $smtp = “”;

//SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证,如不清楚请与你的smtp 服务商联系。

var $check = 1;

//您的email帐号名称

var $username = “”;

//您的email密码

var $password = “”;

//此email 必需是发信服务器上的email

var $s_from = “”;

/*

* 功能:发信初始化设置

* $from 你的发信服务器上的邮箱

* $password 你的邮箱密码

* $smtp 您的SMTP 服务器供应商,可以是域名或IP地址

* $check SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证

*/

function smail ( $from, $password, $smtp, $check = 1 ) {

if( preg_match(“/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/”, $from ) ) {

$this-username = substr( $from, 0, strpos( $from , “@” ) );

$this-password = $password;

$this-smtp = $smtp ? $smtp : $this-smtp;

$this-check = $check;

$this-s_from = $from;

}

}

/*

* 功能:发送邮件

* $to 目标邮箱

* $from 来源邮箱

* $subject 邮件标题

* $message 邮件内容

*/

function send ( $to, $from, $subject, $message ) {

//连接服务器

$fp = fsockopen ( $this-smtp, 25, $errno, $errstr, 60);

if (!$fp ) return “联接服务器失败”.__LINE__;

set_socket_blocking($fp, true );

$lastmessage=fgets($fp,512);

if ( substr($lastmessage,0,3) != 220 ) return “错误信息1:$lastmessage”.__LINE__;

//HELO

$yourname = “YOURNAME”;

if($this-check == “1”) $lastact=”EHLO “.$yourname.”\r\n”;

else $lastact=”HELO “.$yourname.”\r\n”;

fputs($fp, $lastact);

$lastmessage == fgets($fp,512);

if (substr($lastmessage,0,3) != 220 ) return “错误信息2:$lastmessage”.__LINE__;

while (true) {

$lastmessage = fgets($fp,512);

if ( (substr($lastmessage,3,1) != “-“) or (empty($lastmessage)) )

break;

}

//身份验证

if ($this-check==”1″) {

//验证开始

$lastact=”AUTH LOGIN”.”\r\n”;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 334) return “错误信息3:$lastmessage”.__LINE__;

//用户姓名

$lastact=base64_encode($this-username).”\r\n”;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 334) return “错误信息4:$lastmessage”.__LINE__;

//用户密码

$lastact=base64_encode($this-password).”\r\n”;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != “235”) return “错误信息5:$lastmessage”.__LINE__;

}

//FROM:

$lastact=”MAIL FROM: “. $this-s_from . “\r\n”;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 250) return “错误信息6:$lastmessage”.__LINE__;

//TO:

$lastact=”RCPT TO: “. $to .” \r\n”;

fputs( $fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 250) return “错误信息7:$lastmessage”.__LINE__;

//DATA

$lastact=”DATA\r\n”;

fputs($fp, $lastact);

$lastmessage = fgets ($fp,512);

if (substr($lastmessage,0,3) != 354) return “错误信息8:$lastmessage”.__LINE__;

//处理Subject头

$head=”Subject: $subject\r\n”;

$message = $head.”\r\n”.$message;

//处理From头

$head=”From: $from\r\n”;

$message = $head.$message;

//处理To头

$head=”To: $to\r\n”;

$message = $head.$message;

//加上结束串

$message .= “\r\n.\r\n”;

//发送信息

fputs($fp, $message);

$lastact=”QUIT\r\n”;

fputs($fp,$lastace);

fclose($fp);

return 0;

}

}

// 发送示例

// 只需要把这部分改成你的信息就行

$sm = new smail( “用户名”, “密码”, “发件smtp服务器” );

$end = $sm-send( “收件人”, “发件人(可以伪造哦)”, “标题”, “内容” );

if( $end ) echo $end;

else echo “发送成功!$x”;

?

如何正确运用PHP发送邮件函数

PHP发送邮件函数的应用代码示例:

#echo send_mail($_POST[“email”],$tosubject,$_POST[“errortext”]);  

echo send_mail(‘someone@126.com’,’only a test mail for test php mail function’,’一封垃圾邮件’);  

echo time();  

 

function send_mail($to, $subject = ‘No subject’, $body) {  

$loc_host = “mail.server”; //发信计算机名,可随意  

$smtp_acc = “smp@163.com”; //Smtp认证的用户名  

$smtp_pass=”pwdpwd”; //Smtp认证的密码,一般等同pop3密码  

$smtp_host=”smtp.163.com”; //SMTP服务器地址,类似 smtp.tom.com  

$from=”smp@163.com”; //发信人Email地址,你的发信信箱地址  

$deliver=$smtp_acc; //回复到指定邮箱  

$headers = “Content-Type: text/plain; charset=”gb2312″rnContent-Transfer-Encoding: base64”;  

$lb=”rn”; //linebreak   

$hdr = explode($lb,$headers); //解析后的hdr  

if($body) {$bdy = preg_replace(“/^./”,”..”,explode($lb,$body));}//解析后的Body  

 

$smtp = array(  

//1、EHLO,期待返回220或者250  

array(“EHLO “.$loc_host.$lb,”220,250”,”HELO error: “),  

//2、发送Auth Login,期待返回334  

array(“AUTH LOGIN”.$lb,”334″,”AUTH error:”),  

//3、发送经过Base64编码的用户名,期待返回334  

array(base64_encode($smtp_acc).$lb,”334″,”AUTHENTIFICATION error : “),  

//4、发送经过Base64编码的密码,期待返回235  

array(base64_encode($smtp_pass).$lb,”235″,”AUTHENTIFICATION error : “));  

//5、发送Mail From,期待返回250  

$smtp[] = array(“MAIL FROM: “.$from.””.$lb,”250″,”MAIL FROM error: “);  

//6、发送Rcpt To。期待返回250  

$smtp[] = array(“RCPT TO: “.$to.””.$lb,”250″,”RCPT TO error: “);  

//7、发送DATA,期待返回354  

$smtp[] = array(“DATA”.$lb,”354″,”DATA error: “);  

//8.0、发送From  

$smtp[] = array(“From: “.$deliver.$lb,””,””);  

//8.2、发送To  

$smtp[] = array(“To: “.$to.$lb,””,””);  

//8.1、发送标题  

$smtp[] = array(“Subject: “.$subject.$lb,””,””);  

//8.3、发送其他Header内容  

foreach($hdr as $h) {$smtp[] = array($h.$lb,””,””);}  

//8.4、发送一个空行,结束Header发送  

$smtp[] = array($lb,””,””);  

//8.5、发送信件主体  

if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,””,””);}}  

//9、发送“.”表示信件结束,期待返回250  

$smtp[] = array(“.”.$lb,”250″,”DATA(end)error: “);  

//10、发送Quit,退出,期待返回221  

$smtp[] = array(“QUIT”.$lb,”221″,”QUIT error: “);  

 

//打开smtp服务器端口  

$fp = @fsockopen($smtp_host, 25);  

if (!$fp) echo “bError:/b Cannot conect to “.$smtp_host.”br”;  

while($result = @fgets($fp, 1024)){if(substr($result,3,1) == ” “) { break; }}  

 

$result_str=””;  

//发送smtp数组中的命令/数据  

foreach($smtp as $req){  

//发送信息  

@fputs($fp, $req[0]);  

//如果需要接收服务器返回信息,则  

if($req[1]){  

//接收信息  

while($result = @fgets($fp, 1024)){  

if(substr($result,3,1) == ” “) { break; }  

};  

if (!strstr($req[1],substr($result,0,3))){  

$result_str.=$req[2].$result.”br”;  

}  

}  

}  

//关闭连接  

@fclose($fp);  

return $result_str;  

}  

希望上面这段代码示例能让大家充分掌握PHP发送邮件函数的运用。

怎么用php的mail函数发邮件

function sendMail($to, $title, $content) {

    Vendor(‘PHPMailer.PHPMailerAutoload’);

    $mail = new PHPMailer(); //实例化

    $mail-IsSMTP(); // 启用SMTP

    $mail-Host=C(‘MAIL_HOST’); //smtp服务器的名称(这里以QQ邮箱为例)

    $mail-SMTPAuth = C(‘MAIL_SMTPAUTH’); //启用smtp认证

    $mail-Username = C(‘MAIL_USERNAME’); //你的邮箱名

    $mail-Password = C(‘MAIL_PASSWORD’) ; //邮箱密码

    $mail-From = C(‘MAIL_FROM’); //发件人地址(也就是你的邮箱地址)

    $mail-FromName = C(‘MAIL_FROMNAME’); //发件人姓名

    $mail-AddAddress($to,”尊敬的客户”);

    $mail-WordWrap = 50; //设置每行字符长度

    $mail-IsHTML(C(‘MAIL_ISHTML’)); // 是否HTML格式邮件

    $mail-CharSet=C(‘MAIL_CHARSET’); //设置邮件编码

    $mail-Subject =$title; //邮件主题

    $mail-Body = $content; //邮件内容

    $mail-AltBody = “”; //邮件正文不支持HTML的备用显示

    $relt = $mail-Send();

    if(!$relt) {

        writeLog(‘发送邮件错误,错误信息:’. $mail-ErrorInfo, 1, ‘发送邮箱失败’);

    }

    return($relt);

}

这个是thinkphp版本的。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/248706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:29
下一篇 2024-12-12 13:29

相关推荐

  • Python生成随机数的应用和实例

    本文将向您介绍如何使用Python生成50个60到100之间的随机数,并将列举使用随机数的几个实际应用场景。 一、生成随机数的代码示例 import random # 生成50个6…

    编程 2025-04-29
  • IDEA Java发送邮件出现错误解决方案

    IDEA Java是一款常用的Java开发工具,很多开发者都使用它来开发Java应用程序。然而,在使用IDEA Java发送邮件时,有可能会出现一些错误。本文将从多个方面对该错误进…

    编程 2025-04-29
  • 如何在dolphinscheduler中运行chunjun任务实例

    本文将从多个方面对dolphinscheduler运行chunjun任务实例进行详细的阐述,包括准备工作、chunjun任务配置、运行结果等方面。 一、准备工作 在运行chunju…

    编程 2025-04-28
  • Python存为JSON的方法及实例

    本文将从以下多个方面对Python存为JSON做详细的阐述。 一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅…

    编程 2025-04-27
  • 分析if prefixoverrides="and |or"的用法与实例

    if语句是编程语言中最为基础和常见的控制流语句,而prefixoverrides是if语句的一个重要属性。其中,prefixoverrides的常见取值为and和or。那么,这两者…

    编程 2025-04-27
  • Tanimoto系数用法介绍及实例

    本文将详细讲解Tanimoto系数的定义和使用方法,并提供相关实例代码以供参考。 一、Tanimoto系数概述 Tanimoto系数也称为Jaccard系数,是计算两个集合相似度的…

    编程 2025-04-27
  • C#可变参数的应用与实例

    一、可变参数的概念 可变参数是C#中的一个特性,它允许定义一个参数数量不确定的方法,也称作变长参数,即方法内传递的参数个数可以动态变化。使用可变参数,可以简化方法的重载,增加函数的…

    编程 2025-04-25
  • 短视频同行截流

    一、截流技术概述 截流是指在数据传输过程中,将一部分数据截取下来然后转发到另一个网络节点的技术。针对短视频同行截流技术,目的在于为用户提供更好的观看体验,同时避免了短视频平台因流量…

    编程 2025-04-24
  • 使用Springboot发送邮件的多种方式

    一、发送简单文本邮件 在Springboot中,可以使用JavaMailSender类很方便地发送简单的文本邮件。首先,需要在其配置文件中添加邮件配置,如下所示: spring.m…

    编程 2025-04-23
  • Coremail邮件系统漏洞分析

    一、漏洞概述 Coremail邮件系统是国产商用邮件系统,由北京世纪互联万网科技有限公司开发。该邮件系统存在多个漏洞,其中包含身份认证绕过(CVE-2015-0986)、SQL注入…

    编程 2025-04-23

发表回复

登录后才能评论