php中有两种方法:
1,通过mail()函数发送
2,Socket发送邮件
一,通过mail()函数发送:
1,需要配置php.ini邮件信息
打开php.ini配置文件,配置红色的位置
; For Win32 only.
SMTP = localhost ---如果本机装了sendmail,这个表示使用本地邮件服务器,也可以是ip地址,还有服务器域名
smtp_port = 25 ---端口号
; For Win32 only.
;sendmail_from = me@example.com ---可写可不写
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = ----邮件服务器的路径
因为配置较多,所以移植性差
2, 需要类似sendmail这样的组件支持
3.mail()函数
mail()函数允许从脚本直接发送电子邮件
mail()函数返回的是boolean值,成功返回true,失败返回flase
mail(to,subject,message,headers,paeameters);
to --必需,规定邮件的接收者
subject --必需,规定邮件的主题,该参数不能包含任何换行字符
message --必需,规定要发送的消息
headers --可选,规定额外的报头,比如from,Cc以及Bcc 可以参考一些资料
parameters --可选,规定sendmail程序的额外参数
二,通过socket通讯,使用SMTP传输
使用socket也是一个麻烦的方法,但是我们可以下载一个别人写好的类,直接调用就非常方便了
使用fsockopen函数打开一个internet连接
fsockopen(string hostname,int port,int[errno],string[errstr],int[timeout]);
这里由于SMTP传输协议,使用的端口:25。在打开连接成功后,会返回一个socket句柄,
使用它可以像使用文件句柄一样的,可以使用操作有fputs(),fgets(),feof(),fclose()
一些常用的返回的值:
220 服务器就绪
221 正在处理
250 请求邮件动作正确
354 开始发送数据,结束以
500 语法错误,命令不能识别
550 命令不能执行,邮箱无效
552 中断处理:用户超出文件空间
163邮件发送的时候,会碰到550 用户被锁的现象
可以把邮箱升级为3G免费邮箱在使用一下