网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 服务器教程 > php邮件发送类smtp.class.php在服务器上发送失败
商业源码 服务器教程 2024-02-10 3:30:01

php邮件发送类smtp.class.php在服务器上发送失败

php邮件发送类smtp.class.php在服务器上发送失败,第1张

开启php配置文件的两个扩展:extension=php_socketsdll和extension=php_openssldll,将前面的两个分号去掉就行。

这两个函数呢 然后重启服务

直接用sendmail插件就可以实现了,配置好对应值即可。

PHPini的配置。

[mail function]

; For Win32 only

; SMTP = localhost

; smtp_port = 25

; For Win32 only

; sendmail_from = me@examplecom

; For Unix only  You may supply arguments as well (default: "sendmail -t -i")

sendmail_path = "D:\PHP5\sendmail\sendmailexe -t"

; Force the addition of the specified parameters to be passed as extra parameters

; to the sendmail binary These parameters will always replace the value of

; the 5th parameter to mail(), even in safe mode

;mailforce_extra_parameters =

其实,上面的配置中就那么么一句是有用的,其它的关掉就可以了。

sendmail_path的用来指定sendmailexe的路径,就是上面看到的,‘-t’写上就好,不用管。

接着是sendmail的配置

smtp_server=smtp服务器地址

auth_username=邮箱登录名

auth_password=邮箱密码

force_sender=发件人地址全写

这里由于没有自己的STMP服务器,就得用别人的,经测试可以用QQ和163的。例如QQ的smtp_server地址为:smtpqqcom。auth_username就是登陆名,如果用QQ的就是QQ号码。auth_password邮箱密码。force_sender这是其实可以不填。

接着到你用的邮箱里面设置一下,将SMTP功能打开就OK了。

下面是测试用的PHP代码:

<php

    $to = "123@qqcom";$now = date("Y-m-d h:i:s");

    $from_name = '测试者';

    $from_email = 'Kensy';

    $headers = "From: $from_name <$from_email>";

    $body = "测试邮件!";

    $subject = "[$now] 测试邮件";

    if (mail($to, $subject, $body, $headers)) {

        echo "success!";

    } else {

        echo "fail…";

    }  

>

你好,用这个邮件类,需要在调用时,填写一个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";

>

1)、下载WAMP

所谓WAMP,是指在Windows系统(W)下安装Apache网页服务器(A)以及MySQL数据库(M)和PHP脚本引擎(P)而搭建起来的PHP网络服务器环境,当然,在LAMP环境肯定是比WAMP环境要好的,可是由于Windows的易用性,所以,我们在做前期开发或者测试某些CMS的时候,使用WAMP环境甚至很方便更实用一些。WAMP即这些单个软件共同组成了一个强大的Web应用程序平台。

2)、下载开发工具ZendStudio

Zend Studio是PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。

windows版 Zend Studio 801下载

2、安装程序

1)、WAMP 安装步骤图解

把WAMP下载到

选择WAMP安装路径,也可以默认路径。

SMP服务器地址

PHP 邮件服务器默认Email

设置启动浏览器。

安装完成,显示。

3、配置环境

安装完成后默认是英文。

设置WAMP语言。您可以设置其他的语言,当然我们设置为Chinese(中文)

WAMP重启以后就为中文了。您就可以通过WAMP去配置PHP环境了。

添加一个Alias目录,(就像在IIS上配置一个虚拟目录)

添加一个Alias目录名称。

设置Alias目录名称指向的物理路径。

4、PHP调试

在C:\wamp\phpDemo文件夹中添加Indexphp文件,这时就可以在indexphp 编写PHP代码了。

在浏览器地址栏中输入:http://localhost/ 如果能看到上图PHP服务器配置相关信息,说明您的PHP服务器配置成功。

你可以直接访问http://localhost/Demo 就可以查看刚才编写的indexphp程序。显示页面执行的结果。

2)、PHP开发工具ZendStudio安装图

Zend Studio安装过程很简单,点击“Next”、“Next"基本就可以搞定。

安装完成后,你就可以添加一个PHP项目,编写你的PHP网站。在创建PHP项目时,要填写项目名称和保持路径。

这是你就可以在项目中添加PHP文件。编写PHP页面。

5、PHP开发环境

点击运行,就可以在Zend Studion IDE中浏览PHP页面执行的内容。

下载一个phpMailer或者swiftMailer配置一下就可以了,建议用phpMailer,很好用的,也简单。要是用php自带的mail函数需要系统的支持,windows很麻烦的,

你可以用 mail,sendmail 和 smtp 三种方式来借助 Mail 类发送邮件。话说几天前刚买了个 BlueHost 的空间,在上面跑程序的时候用 PHP 发邮件搞出点心得来,放在这里跟大家分享。 首先我在系统中添加了一个邮件账户 test,密码 123456,然后写下了如下代码: require_once( 'Mailphp'); $conf = array( 'host' => 'mailyourdomailcom', 'auth' => true, 'username' => 'test', 'password' => '123456' ); $headers['From'] = 'noreply@yourdomaincom'; $headers['To'] = $To; $headers['Subject'] = '=GB2312B' base64_encode( $Subject) '='; $headers['Content-Type'] = 'text/plain; charset=gb2312'; $Mail = & Mail::factory( 'smtp', $conf); $res = $Mail->send( $To, $headers, $Content); > $To 是想要发送到的信箱地址,比如 foobar@gmailcom,$Subject 是邮件主题,$Content 是 GB2312 编码的邮件正文。结果用以上程序屡试屡败,后来经过多次试验才得出在 BlueHost 主机上用 PHP 以 SMTP 方式发送邮件的正确方法,注意事项如下:1) BlueHost 帮助信息中说跟你账户(域名)相对应的 SMTP 主机地址是 mailyourdomaincom,但其实应该是 localhost。你用 mailyourdomaincom 只会得到 SMTP 拒绝链接的错误信息。2) SMTP 服务器需要验证才能发邮件。3) SMTP 验证时用户名需要写 user+yourdomaincom,不能写 user@yourdomaincom。想想这个也好理解,在虚拟主机上一个 SMTP server 要支撑很多个账户,这种写法应该是为了区别发件的账户。4) 邮件头中的发件邮件账户一定要是存在于系统中的真实账户,象我上面那样注册了一个 test@yourdomaincom,但是发件人账户又写 noreply@yourdomaincom 是不行的,只会得到这样的错误信息:SMTP: Invalid response code received from server (code: 550, response: Verification failed for No Such User Here Sender verify failed) 知道了上面这 4 个注意事项以后就好办了,删掉刚才注册的 test 邮件帐号,注册一个 noreply 帐号,修改程序如下: require_once( 'Mailphp'); $conf = array( 'host' => 'localhost', 'auth' => true, 'username' => 'noreply+yourdomaincom', 'password' => '123456' ); $headers['From'] = 'noreply@yourdomaincom'; $headers['To'] = $To; $headers['Subject'] = '=GB2312B' base64_encode( $Subject) '='; $headers['Content-Type'] = 'text/plain; charset=gb2312'; $Mail = & Mail::factory( 'smtp', $conf); $res = $Mail->send( $To, $headers, $Content); > 邮件被成功的发送出去了,而且由于邮件服务器在美国,发送到 GMail 信箱非常之快,一般这边一发那边刷新一下就能看到新邮件:) 这里再说些题外话,买了 BlueHost 的空间将近一周时间了,感觉美国的虚拟主机市场确实非常成熟,功能强大。跟国内价格还行但是配置超受限的主机比起来性价比高的不得了!只要你选对了服务提供商,可以说绝对让你满意。但是缺点也比较明显,就是速度实在是慢!这里面的原因众所周知,感谢伟大的电信运营商,感谢伟大的 GFW! 今天跟 HostMonster 的客户沟通了一下,问问他们那边从中国过去的访问速度怎么样,估计人家遇到这样的情况不是个别现象,上来就是一句,我们对来自中国的访问速度无法做出承诺。 国内的虚拟主机服务商有万网这样把大家当 SB 漫天要价的主,但是也有兢兢业业踏踏实实做服务的公司,不过性价比跟国外的运营商确实没法比。一边是价格高不了多少,动辄几十 G 空间几百 G 月流量,支持 SSH,支持多 Addon domain 的国外主机,一边是价廉物不太美的国内主机,我想诱惑力是不言而喻的。但是速度,唉,伤心是一种说不出的痛!

错误信息 你的 邮件 服务器 您的
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » php邮件发送类smtp.class.php在服务器上发送失败

商业源码 钻石

分享到:
上一篇
安装redhat时安装源怎么设置
下一篇
服务器数据怎么恢复?

相关推荐

服务器租用费用多少?

服务器租用费用多少?

求永久免费vps服务器(要永久的)

求永久免费vps服务器(要永久的)

cf手游雷霆大炮打挑战怎么打

cf手游雷霆大炮打挑战怎么打

centos7搭建jira服务版本6.3.6详解

centos7搭建jira服务版本6.3.6详解

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...