php – 使用Zend Mail发送邮件时出现问题?

前端之家收集整理的这篇文章主要介绍了php – 使用Zend Mail发送邮件时出现问题?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图发送一封电子邮件与ZendMail(这个简单的脚本总结)
  1. <?PHP
  2. require_once 'Zend/Mail.PHP';
  3.  
  4. $mail = new Zend_Mail();
  5. $mail->setBodyText('My Nice Test Text');
  6. $mail->setBodyHtml('My Nice Test Text');
  7. $mail->setFrom('test@example.com','Mr Example');
  8. $mail->addTo('contact@mypage.com','Mr Test');
  9. $mail->setSubject('TestSubject');
  10. $mail->send();
  11. ?>

但是我得到这个堆栈跟踪:

  1. Fatal error: Uncaught exception 'Zend_Mail_Transport_Exception' with message 'Unable to send mail. ' in /usr/share/PHP/libzend-framework-PHP/Zend/Mail/Transport/Sendmail.PHP:137 Stack trace: #0 /usr/share/PHP/libzend-framework-PHP/Zend/Mail/Transport/Abstract.PHP(348): Zend_Mail_Transport_Sendmail->_sendMail() #1 /usr/share/PHP/libzend-framework-PHP/Zend/Mail.PHP(1178): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail)) #2 /var/www/hexreaction/mail/index2.PHP(11): Zend_Mail->send() #3 {main} thrown in /usr/share/PHP/libzend-framework-PHP/Zend/Mail/Transport/Sendmail.PHP on line 137

编辑:

我不是想使用SMTP发送我的电子邮件,而且我有一个不太可怕的问题,但仍然是一个问题.

  1. <?PHP
  2. require_once 'Zend/Mail.PHP';
  3. $config = array('auth' => 'login','username' => 'contact@mypage.com','password' => 'secretpass');
  4.  
  5. $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com',$config);
  6.  
  7. $mail = new Zend_Mail();
  8. $mail->setBodyText('This is the text of the mail.');
  9. $mail->setFrom('contact@mypage.com','Some Sender');
  10. $mail->addTo('contact@mypage.com','Some Recipient');
  11. $mail->setSubject('TestSubject');
  12. $mail->send($transport);
  13. ?>

这个抛出的这个错误,我真的不明白为什么:

  1. Fatal error: Class 'Zend_Mail_Transport_Smtp' not found in /var/www/hexreaction/mail/index3.PHP on line 7

编辑2:

这是我最后的工作代码

  1. require_once('Zend/Mail/Transport/Smtp.PHP');
  2. require_once 'Zend/Mail.PHP';
  3. $config = array('auth' => 'login','username' => 'somemail@mysite.com','password' => 'somepass','ssl' => 'tls');
  4.  
  5. $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com',$config);
  6.  
  7. $mail = new Zend_Mail();
  8. $mail->setBodyText('This is the text of the mail.');
  9. $mail->setFrom('somemail@mysite.com','Some Sender');
  10. $mail->addTo('somemail@mysite.com','Some Recipient');
  11. $mail->setSubject('TestSubject');
  12. $mail->send($transport);
正如你在Stack trace中看到的那样,Zend_Mail使用Zend_Mail_Transport_Sendmail作为传输适配器.
因此,请确保您的系统上运行的是与邮件兼容的 MTA(如Postfix).

作为替代方案,您可以使用Zend_Mail_Transport_Smtp传输适配器,并使用外部SMTP服务器

  1. $tr = new Zend_Mail_Transport_Smtp('mail.example.com',array(
  2. 'auth' => 'login','username' => $username,'password' => $password,'port' => $port,));
  3. Zend_Mail::setDefaultTransport($tr);

编辑:
对于你的第二个问题:a

require_once( ‘的Zend /邮件/运输/ Smtp.PHP’);

应该有帮助.

猜你在找的PHP相关文章