smtpmail诞生函数版本0.1&0.2

注:此版本有内存泄漏问题,建议在本站搜索smtpmail或到google code下载最新版使用 http://code.google.com/p/phpsmtpmail/downloads/list

smtpmail是使用smtp协议发送邮件的php扩展

由于php自带的mail函数在国内基本不能用,国内目前都是使用php编程来实现smtp发送邮件。每次开发不同系统都要复制过来,甚至还要做一些修改才能使用,不是很方便,且代码比较固定, 其实这种可以对程序员透明的。

SMTPMAIL可以一次登录认证发送多条邮件来提高效率,还带有错误的信息和SMTP日志方便调试,以后还会增加附件功能。

 

安装扩展一笔带过

cd smtpmail
/usr/local/php5/bin/phpize 
./configure --with-php-config=/usr/local/php5/bin/php-config 
make
make install

 

PHP SMTPMAIL函数

PHP:指示支持该函数的最早的 PHP 版本。

函数 描述 PHP
smtpmail_connect() 创建邮件服务器的连接。 5
smtpmail_from() 设置发送人 5
smtpmail_send() 发送邮件 5
smtpmail_error() 取得最后一条错误信息。 5
smtpmail_quit()  退出链接。 5

 

定义和用法

smtpmail_connect(server,port,user,pwd,charset,clientflag)
参数 描述
server

规定要连接的邮件服务器。

如smtp.qq.com

port

可选。要连接的邮件服务器的端口

user 可选。邮件的登录用户名。
pwd 可选。邮件的登录密码。
charset 可选。指定发送内容的编码,默认为utf-8编码。
clientflag

可选。

\n - 使用 LF 作为分隔符(通常为 Unix/Linux 主机)

\r\n - 使用 CRLF 作为分隔符(通常为 Windows 主机)

\r - 使用 CR 作为分隔符(通常为 Mac 主机)

 

smtpmail_from(link_identifier,from_mail,from_name)
参数 描述
link_identifier

连接标识符

from_mail 发送邮件的邮箱。
from_name 可选。发送人。

 

smtpmail_send(link_identifier,subject,content,to_email,to_nickname,show_log)
参数 描述
link_identifier

连接标识符

subject 邮件标题。
content 邮件正文。
to_email 接收邮箱
to_nickname

可选。接收人昵称

show_log 可选。是否返回SMTP日志,默认返回成功或失败

 

smtpmail_error()
参数 描述

 

smtpmail_quit(link_identifier)
参数 描述
link_identifier

连接标识符

 

代码示例

<?php
$smtpmail = smtpmail_connect("smtp.qq.com",25,"test","test","utf-8","\n");
smtpmail_from($smtpmail,"from@qq.com","SMTPMAIL扩展");
$result = smtpmail_send($smtpmail,'标题','正文',"to@qq.com","柯楠");
if (!$result) {
	echo smtpmail_error();
}
smtpmail_quit($smtpmail);

如果是ssl加密需要打开openssl扩展,并且地址前加ssl://如ssl://smtp.gmail.com

速度提升明显
以GMAIL为例子(由于网络原因,QQ邮件会耗时较短)
使用普通PHP代码10次SMTP登录认证发送10封邮件耗时184.1秒
使用扩展10次SMTP登录认证发送10封邮件耗时79.7秒
使用扩展1次SMTP登录认证发送10封邮件耗时39.6秒
smtpmail_v0.2.zip (9.19 K, 下载次数:61, 上传时间:2012-10-25 00:35)
smtpmail_v0.1.zip (8.82 K, 下载次数:46, 上传时间:2012-10-24 14:32)

Tags: smtpmail , php扩展

上一篇: 【转】Lamper知识树   下一篇: 如何识别高级的验证码

提交疑问

回顶部