問(wèn)題描述
我正在嘗試使用 ZendMail 發(fā)送電子郵件(這個(gè)簡(jiǎn)單的腳本總結(jié)了它)
setBodyText('My Nice Test Text');$mail->setBodyHtml('My Nice Test Text');$mail->setFrom('test@example.com', 'Mr Example');$mail->addTo('contact@mypage.com', 'Mr Test');$mail->setSubject('TestSubject');$mail->send();?>
但是我得到了這個(gè)堆棧跟蹤:
致命錯(cuò)誤:未捕獲的異常Zend_Mail_Transport_Exception"帶有消息無(wú)法發(fā)送郵件".' 在/usr/share/php/libzend-framework-php/Zend/Mail/Transport/Sendmail.php:137堆棧跟蹤:#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} 在第 137 行的/usr/share/php/libzend-framework-php/Zend/Mail/Transport/Sendmail.php 中拋出
我沒(méi)有嘗試使用 SMTP 來(lái)發(fā)送我的電子郵件,而且我遇到的問(wèn)題不那么嚴(yán)重,但仍然是一個(gè)問(wèn)題.
'登錄','用戶名' =>'contact@mypage.com','密碼' =>'秘密通行證');$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);$mail = new Zend_Mail();$mail->setBodyText('這是郵件的正文.');$mail->setFrom('contact@mypage.com', 'Some Sender');$mail->addTo('contact@mypage.com', '某些收件人');$mail->setSubject('TestSubject');$mail->send($transport);?>
這個(gè)錯(cuò)誤是這個(gè)錯(cuò)誤,我真的不明白為什么:
致命錯(cuò)誤:在第 7 行的/var/www/hexreaction/mail/index3.php 中找不到Zend_Mail_Transport_Smtp"類(lèi)
編輯 2:
這是我最終的工作代碼
require_once('Zend/Mail/Transport/Smtp.php');require_once 'Zend/Mail.php';$config = array('auth' => '登錄','用戶名' =>'somemail@mysite.com','密碼' =>'somepass','ssl' =>'tls');$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);$mail = new Zend_Mail();$mail->setBodyText('這是郵件的正文.');$mail->setFrom('somemail@mysite.com', 'Some Sender');$mail->addTo('somemail@mysite.com', '某些收件人');$mail->setSubject('TestSubject');$mail->send($transport);
正如您在堆棧跟蹤中所見(jiàn),Zend_Mail
使用 Zend_Mail_Transport_Sendmail
作為傳輸適配器.
因此,請(qǐng)確保您的系統(tǒng)上正在運(yùn)行與 sendmail 兼容的 MTA(例如 Postfix).>
作為替代,您可以使用 Zend_Mail_Transport_Smtp 傳輸適配器并像這樣使用外部 SMTP 服務(wù)器
$tr = new Zend_Mail_Transport_Smtp('mail.example.com', array('認(rèn)證' =>'登錄','用戶名' =>$用戶名,'密碼' =>$密碼,'端口' =>$端口,));Zend_Mail::setDefaultTransport($tr);
對(duì)于您的第二個(gè)問(wèn)題:a
require_once('Zend/Mail/Transport/Smtp.php');
應(yīng)該有幫助.
I'm trying to send an e-mail with ZendMail ( this simple script sums it up )
<?php
require_once 'Zend/Mail.php';
$mail = new Zend_Mail();
$mail->setBodyText('My Nice Test Text');
$mail->setBodyHtml('My Nice Test Text');
$mail->setFrom('test@example.com', 'Mr Example');
$mail->addTo('contact@mypage.com', 'Mr Test');
$mail->setSubject('TestSubject');
$mail->send();
?>
However I get this stack trace:
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
EDIT:
I'm not trying to use SMTP to send my e-mail and I'm having a less horrible problem, but still a problem.
<?php
require_once 'Zend/Mail.php';
$config = array('auth' => 'login',
'username' => 'contact@mypage.com',
'password' => 'secretpass');
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('contact@mypage.com', 'Some Sender');
$mail->addTo('contact@mypage.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send($transport);
?>
This throw's this error, I don't really get why:
Fatal error:
Class 'Zend_Mail_Transport_Smtp' not found in /var/www/hexreaction/mail/index3.php on line 7
EDIT 2:
This is my final working code
require_once('Zend/Mail/Transport/Smtp.php');
require_once 'Zend/Mail.php';
$config = array('auth' => 'login',
'username' => 'somemail@mysite.com',
'password' => 'somepass',
'ssl' => 'tls');
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('somemail@mysite.com', 'Some Sender');
$mail->addTo('somemail@mysite.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send($transport);
As you can see in the Stack trace Zend_Mail
uses Zend_Mail_Transport_Sendmail
as transport adapter.
So make sure a sendmail-compatible MTA (e.g. Postfix) is running on your system.
As an alternative you could use the Zend_Mail_Transport_Smtp transport adapter and use an external SMTP-Server like so
$tr = new Zend_Mail_Transport_Smtp('mail.example.com', array(
'auth' => 'login',
'username' => $username,
'password' => $password,
'port' => $port,
));
Zend_Mail::setDefaultTransport($tr);
Edit: For your 2nd Problem: a
require_once('Zend/Mail/Transport/Smtp.php');
should help.
這篇關(guān)于使用 Zend Mail 發(fā)送郵件時(shí)出現(xiàn)問(wèn)題?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!