说下本地开发环境的配置:Windows XP + IIS 5.1 + PHP5,smtp服务常规选项卡中选择IP为192.168.0.138,php配置文件中设置SMTP = 192.168.0.138(该IP为本地局域网分配IP),端口未动,都设置匹配为25,使用mail函数测试结果:成功向我的163邮箱发送了邮件。外网服务器配置:Windows 2003 + IIS 6.0 + PHP5,smtp服务常规选项卡中选择IP为外网IP,php配置文件中设置SMTP = 外网IP,端口未动,都设置匹配为25,使用mail函数测试结果:始终报Failed to connect to mailserver at "外网IP" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() 错误,也就是说外网服务器上PHP始终未连接上所在机器上的SMTP服务。也就是说两种环境下,代码是一样的,SMTP服务配置都一致,只是IP不同,不知道为何外网服务器上出现始终连不了SMTP的问题,更别说用mail函数发送邮件了,但本地却很成功!有2点注意,原先我以为外网上装了防火墙原因,所以加了端口25再测,不过发现还是一样的错误,另外外网服务器为双网卡,不知道是否跟这有关系?BTW,大家可能会让我用别的方式发送邮件,但是这里我只是想弄清楚到底是什么原因导致这样的结果(而事实上mail函数虽然简陋,但足以满足我这次的项目需求了),希望大家不吝赐教,不胜感激!

解决方案 »

  1.   

    你带有内网IP了,163会过滤掉你直接服务器拨号看看。
    一定要外网IPqueryphp ORM数据库类
    --------------------------------------------------------
    教程地址
    http://topic.csdn.net/u/20100228/22/3bea834b-efc0-4aa0-af4a-a4923af8b60c.html
    http://topic.csdn.net/u/20100226/12/43bf3dc5-795f-4fa5-861a-2f7bf8fd0cd6.html
    下载地址
    http://code.google.com/p/queryphp/downloads/list