php发送邮件
在php中发送邮件可以用自带的mail()函数,但是这个函数不足点很明显,最主要是咱本机上没有安装smtp服务就没法使用mail()。
当然现在还有php其他的插件、类什么的,那些也许功能齐全,可是外加就感觉不爽。
那其他办法的话,一般会想到通过SMTP服务器来发送邮件,但是也会产生一系列问题(具体有哪些问题可见参考资料"无须SMTP服务器中转直接发送电子邮件")。对于目前我的需求来说,只需要发送邮件,并不需要接受功能,所以想到如果发邮件要绑定某个邮箱,就感到非常不爽,所以最终还是决定用smtp协议直接发送邮件,这样也省了用户验证这个步骤,可以随时随地发邮件。
方法很简单,如下:
一、找到目标邮箱的SMTP服务器的IP 地址
只要向域名服务器发送查询“163.com”等的目标邮箱服务器地址,便可找到目标邮箱SMTP服务器的IP 地址,该查询指令被称作MX(Mail Exchange)邮件交换服务器的地址查询。
方法1:获取本机DNS,然后与DNS服务器通信实现MX指令查询。(可见参考资料"无须SMTP服务器中转直接发送电子邮件")
方法2:利用windows自带的nslookup工具,可以轻松实现MX查询。
方法3(推荐):用nslookup工具固然方便,但是毕竟要执行外部程序,有点不爽,现在php5.3提供了更加方便的命令,应该就是从nslookup上扩展出来的,getmxrr($hostname,$hosts)只需要提供远程邮局服务器地址,就可以轻松得到所有的该服务器域名了,说明信息见“http://cn.php.net/manual/en/function.getmxrr.php”,里面还能看到nslookup在php中的应用,对于php5.3以下配置的也可以参考这里,非常实用。
二、用socket_create和socket_connect连接目标邮箱服务器, SMTP端口一般为25.
要使用socket,首先要确保php.ini中的extension=php_sockets.dll扩展打开,看phpInfo()显示的内容里,socket模块是否为enable。
注,网上有很多人用fsockopen(), 咱没试过,不好比较
三、SMTP邮件提交
SMTP协议参考[RFC821], 最基本的命令如下:
--------------------------------------------------------------------------
HELO 目标邮箱服务器域名 *这个目前不清楚有什么作用,乱写或者不写好像都没什么关系
MAIL from: <发送者邮箱地址> *初始化邮件传输,对于直接用协议发邮件的,可以不写,也可以自定义,只要是有效邮箱地址即可
R
相关文档:
在新安装好的mysql ,apahce,php 的时候,如果在代码中使用了sessions_start() 的时候会出现类似以下的错误:
Warning: session_start() [function.session-start]: Cannot send session cooki 等的错误。
请安装如下的思路去修正:
1.在php.ini 中配置 session.savepath='/tmp'
2.开启session.auto_start=1
3.把更改 ......
http://www.dedecms.com/knowledge/program/php/2009/0929/51.html
来源:PHP100 作者:PHP100er 发表于:2009-09-29 11:05 点击:
2363
最近学习URL跳转的时候新进三个超好用的PHP加密解密函数,貌似是discuz里的使用这些加密解密的原因是因为有时自己的URL地址被人获取以后想破解你里面传值的内容就必须知道你的key, ......
伪静态用到知识很简单一旦学会,快乐无穷,只需要正则和服务器设置。
先说iis如何设置吧,往下看
下载(IIS Rewrite模块): http://www.isapirewrite.com/,先把产品下载下来,安装在服务器上,记住目录,会有类似Rewrite.dll的文件生成,MMC→IIS信息服务管理器→网站→您的站点→属性,在“ ......
<?php
//变量定义,画椭圆弧时的角度大小
define("ANGLELENGTH",3);
/**
* 绘制图片
* @param $title 3D图的标题
......
PHP中有下列称之为魔术方法(magic method)的函数:__construct, __destruct ,
__call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup,
__toString, __set_state, __clone and __autoload,本文使用__call为实现一个身份验证的简单实例,代码如下: 代码<?php
interfa ......