luinstein 发表于 2012-10-7 00:07:30

在PHP使用JMail发送邮件

我的机子上没有安装邮件服务器,无法用自带的mail()函数发送邮件,空间所在虚拟主机上也没有,socket和PHPMailer也不支持,但是Jmail这个组件却有,于是便参考网络和文档,测试通过下面一段邮件发送代码:
http://www.devjs.com/images/code.gif 程序代码
<?php

$jmail=new COM("JMail.Message")or die("无法调用Jmail组件");

//屏蔽例外错误,静默处理

$jmail->silent=true;

//编码必须设置,否则中文会乱码

$jmail->charset="gb2312";

//发信人邮件地址和名称,能自定义,可以和邮件发送账号不同

$jmail->From="admin@domain.com";

$jmail->FromName="webmaster";

//添加多个邮件接受者

$jmail->AddRecipient("xxxx@yeah.net");

$jmail->AddRecipient("xxxx@gmail.com");

$jmail->AddRecipient("xxx@qq.com");

//邮件主题和正文信息

$jmail->Subject="PHP+Jmail测试发送邮件";

$jmail->Body="PHP+Jmail测试发送邮件正文文本";

//发信邮件账号和密码

$jmail->MailServerUserName="xxxx@sogou.com";

$jmail->MailServerPassword="123456";

try{

    //发送的时候附带SMTP发信服务器地址

    $retval=$jmail->Send("smtp.mail.sogou.com");

    if($retval)

    echo "发送成功";

    else

    echo "发送失败";

}catch(Exception $e){

    echo $e->GetMessage();

}

?>
发信账号必须有smtp发信权限,对于网易的邮箱,06年后注册的新邮箱好像不行,早期的倒可以。
还有,最好设置$jmail->silent=true,不让jmail自行抛出错误信息,在设置正常的时候,频繁发信会出现一些错误,据我估计应该是发信服务器设置了发信时间间隔。
经测试,我所用的发信邮箱账号sogou邮箱,能够正常向网易、QQ、GMail邮箱发送邮件信息。

from:http://www.cnblogs.com/shaoyun/archive/2008/11/13/1332632.html
页: [1]
查看完整版本: 在PHP使用JMail发送邮件