当前位置:首页 » 编程语言 » php邮件类

php邮件类

发布时间: 2023-05-22 10:47:24

‘壹’ 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使用邮箱发送邮件(phpmailer/phpmailer)

本文以QQ邮箱为案例
1.配置QQ邮箱,获取SMTP 密码

3.开启PHP模块(早前php.ini)
PHPMailer 需要 PHP 的 sockets 扩展支持,而登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密,故 PHP 还得包含 openssl 的支持。悔睁升

4.composer 安装最新版发送邮碧老件类库
composer require phpmailer/phpmailer:6.1.5

TP5.1类库封装

‘叁’ php如何发送邮件

php发送邮件,php发送电子邮件,使用php发送邮件,php如何发送邮件
方法/步骤
1
在实际项目开发中,我们经常需要得到用户的反馈信息并及时回复。普通的留言板有一定的内容限制,而悉春邮件则能满足这个需求。今天给大家演示一下怎么利用PHP发送电子邮件。
2
1.首先我们需要一个用来发送电子邮件的文件的程序,也就是一个php文件,流行的phpmail有很多,今天以smtp.php为例来演示。


3
2.将其复制到你的项目文件内,具体路径根据自己的实际情况,这里建了一个test文件,用来设置邮件参数,大家也可以自定义邮件参数文件。(PS:一般都是通过表单接受的)

4
3.smtp.php文件如图所示,大家不需要管代码,会用就行,有时间了也可以研究研究哈。

5
4.设置邮亏陆凳件参数,具体代码如下:
//引入发送邮件类
require("smtp.php");

//使用163邮箱服务器
$smtpserver="smtp.163.com";

//163邮箱服务器端口
$smtpserverport=25;

//你的163服务器邮箱账号
$smtpusermail="@163.com";

//收件人邮箱
$smtpemailto="@qq.com";

//你的邮箱账号(去掉@163.com)
$smtpuser="";//SMTP服务器的用户帐号

//你的邮箱密码
$smtppass="";//SMTP服务器的用户密码

6
5.设置邮件内容,代码如下:
//邮件主题
$mailsubject="测试邮件发送";

//邮件内容
$mailbody="PHP+MySQL";

//邮件格式(HTML/TXT),TXT为文本邮件
$mailtype="TXT";

//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp=newsmtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);

//是否显示发送的调试信息
$smtp->debug销旅=TRUE;

//发送邮件
$smtp->sendmail($smtpemailto,$smtpusermail,$mailsubject,$mailbody,$mailtype);
刷新页面后邮件发送,参数不出错的话1分钟左右即可发送成功。我在测试的时候没有发送成功提示,自己登录邮箱查看的,如图所示,内容和上面设置的一样。

热点内容
新建文件夹2免费手机 发布:2024-05-18 12:56:13 浏览:363
自己在家搭建服务器有水冷散热吗 发布:2024-05-18 12:47:27 浏览:648
旧版的安卓手机怎么使用微信 发布:2024-05-18 12:46:36 浏览:466
我的世界服务器开多久 发布:2024-05-18 12:45:32 浏览:592
vba获取网页表格数据库数据库数据库 发布:2024-05-18 12:23:24 浏览:699
腾讯服务器为什么卡顿 发布:2024-05-18 12:02:12 浏览:305
如何知道密码锁有没有nfc 发布:2024-05-18 11:58:09 浏览:961
单片机c语言模块化编程 发布:2024-05-18 11:53:16 浏览:644
win7xp共享打印机拒绝访问 发布:2024-05-18 11:51:00 浏览:847
zkeys金属服务器怎么使用 发布:2024-05-18 11:49:31 浏览:581