创星网络[分享知识 传递快乐]

标题: 在PHP使用JMail发送邮件 [打印本页]

作者: luinstein    时间: 2012-10-7 00:07
标题: 在PHP使用JMail发送邮件
我的机子上没有安装邮件服务器,无法用自带的mail()函数发送邮件,空间所在虚拟主机上也没有,socket和PHPMailer也不支持,但是Jmail这个组件却有,于是便参考网络和文档,测试通过下面一段邮件发送代码:
   程序代码

  1. <?php

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

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

  4. $jmail->silent=true;

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

  6. $jmail->charset="gb2312";

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

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

  9. $jmail->FromName="webmaster";

  10. //添加多个邮件接受者

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

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

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

  14. //邮件主题和正文信息

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

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

  17. //发信邮件账号和密码

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

  19. $jmail->MailServerPassword="123456";

  20. try{

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

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

  23.     if($retval)

  24.     echo "发送成功";

  25.     else

  26.     echo "发送失败";

  27. }catch(Exception $e){

  28.     echo $e->GetMessage();

  29. }

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




欢迎光临 创星网络[分享知识 传递快乐] (http://bbs.cxweb.com.cn/) Powered by Discuz! X3