- 浏览: 7133413 次
- 性别:
- 来自: 上海
-
最新评论
-
autosuggestion:
实现一个智能提示功能需要JavaScript、ajax、数据库 ...
自动提示结果 -
岁月之眸:
...
Java读TXT文件 -
yujian58:
写的好。
在线客服技术方案 -
QQ1067184821:
你好,能不能发个完整的给我呢?1067184821@qq.co ...
Extjs3.2+Json lib动态树与GridPanel简单展现 -
chenhua0725:
能不能发一个完成的包给我呢,谢谢了,83667664@qq.c ...
Extjs3.2+Json lib动态树与GridPanel简单展现
<?php
/*
* php smtp发送邮件Scoket类
* ZhozPhpSmtpSendMail.php
* Created on 2008/09/02 zhoz.com
* @author zhoz
* v 1.72 update 2008/09/26 zhoz.Com
*/
class ZhozPhpSmtpSendMail {
//您的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 ZhozPhpSmtpSendMail ( $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 zhoz_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 (emptyempty($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";
fclose($fp);
error_log("send over------->ok!!", 0);
return true;
}
}
?>
<?php
/*
* php smtp发送邮件Scoket类
* ZhozPhpSmtpSendMail.php
* Created on 2008/09/02 zhoz.com
* @author zhoz
* v 1.72 update 2008/09/26 zhoz.Com
*/
class ZhozPhpSmtpSendMail {
//您的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 ZhozPhpSmtpSendMail ( $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 zhoz_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";
fclose($fp);
error_log("send over------->ok!!", 0);
return true;
}
}
?>
测试方法一样。
运行代码查看代码复制代码打印关于
<?php
/**
* ZhozPhpSmtpSendMail.php
* Created on 2008/09/02 zhoz.com
* php smtp发送邮件类
* 代替mail():因为它报错,我又不想
*/
// 这里配置发信服务器信息,如果不改也可以正常使用:
$from = 'zhoz@zhoz.com'; // 你的发信服务器上的邮箱
$password = 'zhoz'; // 你的邮箱密码
$smtp = 'smtp.zhoz.com'; // 您的SMTP 服务器供应商,可以是域名或IP地址
// 类初始化
$zhoz_obj = new ZhozPhpSmtpSendMail($from, $password, $smtp);
// 发送开始
$status = $zhoz_obj->zhoz_send("zhoz008@126.com", "zhoz@zhoz.com", "subject is zhoz", "body is zhoz.com");
if($status) {
echo $status;
echo "no---------";
} else {
echo "send ok-----------------!";
die;
}
// 结果当然是:send ok-----------------!
?>
发表评论
-
jQuery+Ajax+PHP+Mysql实现分页显示数据
2013-09-09 15:54 2880jQuery+Ajax+PHP+Mysql实现分页显示数 ... -
今,昨,周,月 页面访问统计
2008-12-07 02:18 871//自己做一个网站是用到的,在每个php文件中调用page_c ... -
php2html php生成静态页函数
2008-12-07 02:19 896<?php /** ------------------ ... -
获取服务器IP和获取访问者IP
2008-12-07 02:20 1745$_SERVER['SERVER_ADDR'] 获取服务器IP ... -
PHP保存远程图片到本地的类
2008-12-07 02:22 1874<iframe name="google_ ... -
使用php实现伪静态化页面
2008-12-07 19:57 1029方法一: 在你的程序初 ... -
平时积累的PHP技巧
2008-12-07 19:58 822平时积累的PHP技巧,与 ... -
Ajax+PHP分页演示,带源码下载
2008-12-07 20:00 865http://www.corange.cn/archives/ ... -
PHP分页效果 页码自动适应范围
2008-12-08 11:46 1634前后各显示一定页数 ... -
PHP控制网页过期时间的程序
2008-12-08 11:50 808有时我们需要控制主页之类的网页过期时间。但我们比如使用的是Ch ... -
php的curl实现get和post
2008-12-08 11:51 2178类似于dreamhost这类主机服务商,是显示fopen的使用 ... -
PHP正则表达式从url中取得域名
2008-12-08 15:06 1384以下代码可以从URL中获得域名 例如:http://yyoo. ... -
PHP汉字转拼音的函数
2008-12-08 20:48 2202汉字转换成拼音函数,写到URL可以做搜索引擎优化 <?p ... -
关于PHP编码转化的问题
2008-12-12 09:34 990PHP转化GB2312到UTF-8这个问题已经困扰我好几天了, ... -
PHP的加密和解密程序方法
2008-12-16 21:33 954{ srand((double)microtime()*10 ... -
对IP及IP段进行访问限制
2008-12-17 10:36 1019本来是写了几个函数,IP黑名单是记到库里的,为了方便理解,改成 ... -
mssql自动备份及自动清除日志文件教程
2008-12-17 10:53 11701、每日自动备份 强烈 ... -
关于mysql中文排序的方法
2008-12-23 09:44 922方法1 ---- "mysql在查询字符串时是大小写 ... -
MySQL怎样优化WHERE子句
2008-12-23 09:46 744where优化主要是在SELECT中,因为他们最主要是在那里使 ... -
MySQL随机选取数据
2008-12-23 09:47 1636本文实现了MySQL的随机数、MySQ随机选取数据、MySQ随 ...
相关推荐
PHPMailer需PHP的socket扩展支持,而PHPMailer链接qq域名邮箱时需要ssl加密方式,固php还得openssl的支持,可以查看phpinfo,如下两项均存在则可以使用,其中openssl版本号之类不用管;许多虚拟主机中的php是不支持...
1 使用默认mail函数 2 通过SOCKET连接SMTP服务器发送(支持 ESMTP 验证) 3 通过调用CDONTS.NewMail(虚拟SMTP发信)组件发送Email(仅 win32 下有效) 4 通过调用jmail 组件发送Email(仅 win32 下有效...
在win32平台下,mail()函数不能发送电子邮件,需要调用SMTP服务器来发送电子邮件。可以修改php.ini的smtp = ip,其中ip是没有验证功能的SMTP服务器。php发送邮件的最好解决方法是使用socket直接发送到对方email...
在 Win32 平台下,使用 mail() 函数不能发送电子邮件,需要调用 SMTP 服务器来发送电子邮件,或者使用 socket 直接发送到对方 Email 服务器。 6. MySQL 使用 在安装 MySQL 时,如果没有设置密码,需要使用 `update ...
5. **Win32下的邮件发送**:在Windows环境下,需要配置SMTP服务器来发送邮件。在`php.ini`中设置`SMTP`为SMTP服务器的IP地址,并考虑使用直接通过socket连接目标邮件服务器的方式发送邮件,避免依赖本地SMTP服务。 ...
面向对象编程(OOP)在PHP 4中得到了显著加强,虽然不如PHP 5那样全面,但仍然引入了类、对象、继承、封装和多态等核心概念。这使得开发者能够编写更加结构化和可维护的代码,尤其是对于大型项目,OOP是必不可少的...
5. **Win32下mail()函数邮件发送**: 在Windows下,需要配置SMTP服务器才能发送邮件。在php.ini中设置`SMTP = IP`,其中IP是不需验证的SMTP服务器地址。更好的解决方案是直接通过socket连接到目标邮件服务器发送...
5. **Win32环境下mail()函数无法发送邮件**: 在Windows系统中,需要配置SMTP服务器来发送邮件。在php.ini中设置`SMTP = IP`,IP为无认证的SMTP服务器。更佳方案是直接使用socket连接目标邮件服务器发送邮件。 6. ...
49. 邮件列表 50. 获取 PHP 51. 数据库问题 52. 安装常见问题 53. 编译问题 54. 使用 PHP 55. PHP 和 HTML 56. PHP 和 COM 57. PHP 和其它语言 58. 从 PHP/FI 2 移植到 PHP 3 59. 从 PHP 3 移植到 PHP 4 60. 从 PHP ...
win32service — win32service Functions xattr — xattr Functions xdiff — xdiff Functions XML — XML 语法解析函数 XML-RPC — XML-RPC 函数 XMLReader — XMLReader functions XMLWriter — XMLWriter ...
PHP,即“PHP: Hypertext Preprocessor”,是一种被广泛使用的开放源代码多用途脚本语言,尤其适用于 web 开发并可以嵌入到 HTML 中去。其语法利用了 C,Java 和 Perl,非常容易学习。该语言的主要目标是让 web 开发...
5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 控制结构 17...
win32service — win32service Functions xattr — xattr Functions xdiff — xdiff Functions XML — XML 语法解析函数 XML-RPC — XML-RPC 函数 XMLReader — XMLReader functions XMLWriter — XMLWriter ...
5. **Win32下mail()函数无法发送邮件**:在Windows环境中,需要配置SMTP服务器。可以考虑使用socket直接连接目标邮件服务器发送邮件。 6. **MySQL无密码设置**:首次安装MySQL后,若未设置密码,可以使用SQL命令`...
- 在“Administrator's Email Address”处填写系统管理员的联系电子邮件地址。 - 可选择为所有用户安装(使用默认的80端口,并作为系统服务自动启动)或仅为当前用户安装(使用端口8080,手动启动)。推荐选择为...
49. 邮件列表 50. 获取 PHP 51. 数据库问题 52. 安装常见问题 53. 编译问题 54. 使用 PHP 55. PHP 和 HTML 56. PHP 和 COM 57. PHP 和其它语言 58. 从 PHP/FI 2 移植到 PHP 3 59. 从 PHP 3 移植到 PHP 4 60. 从 PHP ...
- 解压缩到适当的位置,例如与Apache安装在同一目录下的子目录。 - 配置Apache,打开`httpd.conf`文件,添加PHP模块加载指令,通常是在文件末尾加入`LoadModule php5_module "path/to/php/php5apache2_2.dll"`,...
此外,邮件发送功能可能也需要重新配置,因为在php.ini中的设置如`SMTP = localhost`和`sendmail_from = me@localhost.com`都是针对Win32平台,需要在chroot环境中调整sendmail配置以确保正常工作。 其次,关注PHP...