关于Zend_Mail发送邮件时检验EMAIL地址有效性的问题
或许大家都知道,zend framework中的zend_mail发送邮件功能很方便,但是我调试的时候发现了一个缺点(暂时说是它的缺点吧,我也不知道是我不会用还是框架的缺点)
就是发送邮件的时候,当发件人或者收件人的EMAIL地址不存在的时候就会报错。曾经也试过用 Zend_Validate_EmailAddress
但是最后都失败了
代码如下
用try..catch
但是当其中一个收件人的EMAIL地址不存在的时候就全部不能发送了?
难道有几个收件人的话就要try..catch几次?
现在问题是,当发件人或者收件人的EMAIL地址不存在的时候,就会发送失败,而且还会提示一大堆的错误。
Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception' with message 'Mailbox' in D:\AppServ\www\ZendMail\Zend\Mail\Protocol\Abstract.php:406 Stack trace: #0 D:\AppServ\www\ZendMail\Zend\Mail\Protocol\Smtp.php(289): Zend_Mail_Protocol_Abstract->_expect(Array, 300) #1 D:\AppServ\www\ZendMail\Zend\Mail\Transport\Smtp.php(207): Zend_Mail_Protocol_Smtp->rcpt('www1@lianglong....') #2 D:\AppServ\www\ZendMail\Zend\Mail\Transport\Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail() #3 D:\AppServ\www\ZendMail\Zend\Mail.php(1038): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail)) #4 D:\AppServ\www\ZendMail\index.php(117): Zend_Mail->send(Object(Zend_Mail_Transport_Smtp)) #5 {main} thrown in D:\AppServ\www\ZendMail\Zend\Mail\Protocol\Abstract.php on line 406
我现在想要解决的设想是:
1.当其中某个收件人的EMAIL地址不存在的时候自动跳过,就是只发送有效的EMAIL地址,这样就不会出错了?
2.在准备发送的时候就检查EMAIL地址的有效性,只有有效的地址才进入发送环节。
就是发送邮件的时候,当发件人或者收件人的EMAIL地址不存在的时候就会报错。曾经也试过用 Zend_Validate_EmailAddress
但是最后都失败了
代码如下
$mailTransport = new Zend_Mail_Transport_Smtp('smtp服务器地址', array('auth' => 'login','username' => '账号','password' => '密码'));
$mail = new Zend_Mail('utf-8');
$mail->setBodyHtml('邮件内容');
$mail->setSubject('邮件主题');
$mail->setFrom('发件人EMAIL地址', '发件人称呼');
$mail->addTo('收件人1EMAIL地址', '收件人1称呼');
$mail->addTo('收件人2EMAIL地址', '收件人2称呼');
$mail->send($mailTransport);
用try..catch
try{
$mailTransport = new Zend_Mail_Transport_Smtp('smtp服务器地址', array('auth' => 'login','username' => '账号','password' => '密码'));
$mail = new Zend_Mail('utf-8');
$mail->setBodyHtml('邮件内容');
$mail->setSubject('邮件主题');
$mail->setFrom('发件人EMAIL地址', '发件人称呼');
$mail->addTo('收件人1EMAIL地址', '收件人1称呼');
$mail->addTo('收件人2EMAIL地址', '收件人2称呼');
$mail->send($mailTransport);
}catch(Zend_Mail_Exception $e){
echo "邮件发送失败";
}
但是当其中一个收件人的EMAIL地址不存在的时候就全部不能发送了?
难道有几个收件人的话就要try..catch几次?
现在问题是,当发件人或者收件人的EMAIL地址不存在的时候,就会发送失败,而且还会提示一大堆的错误。
Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception' with message 'Mailbox' in D:\AppServ\www\ZendMail\Zend\Mail\Protocol\Abstract.php:406 Stack trace: #0 D:\AppServ\www\ZendMail\Zend\Mail\Protocol\Smtp.php(289): Zend_Mail_Protocol_Abstract->_expect(Array, 300) #1 D:\AppServ\www\ZendMail\Zend\Mail\Transport\Smtp.php(207): Zend_Mail_Protocol_Smtp->rcpt('www1@lianglong....') #2 D:\AppServ\www\ZendMail\Zend\Mail\Transport\Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail() #3 D:\AppServ\www\ZendMail\Zend\Mail.php(1038): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail)) #4 D:\AppServ\www\ZendMail\index.php(117): Zend_Mail->send(Object(Zend_Mail_Transport_Smtp)) #5 {main} thrown in D:\AppServ\www\ZendMail\Zend\Mail\Protocol\Abstract.php on line 406
我现在想要解决的设想是:
1.当其中某个收件人的EMAIL地址不存在的时候自动跳过,就是只发送有效的EMAIL地址,这样就不会出错了?
2.在准备发送的时候就检查EMAIL地址的有效性,只有有效的地址才进入发送环节。
...全文
相关推荐
PHP 邮件,不用zend组建,PHP轻松发送邮件!
$headers = "", string $additional_parameters = "")```- `$to`:接收邮件的邮箱地址。
Zend Framework校验器Zend_Validate用法详解
当电子邮件地址格式不正确时,`isValid()` 返回 `false`,并且通过 `getMessages()` 和 `getErrors()` 可以获取到相应的错误信息。**3.
ZendFramework中文文档
Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关
XAMPP安装与使用教程[整理].pdf
PEAR (PEAR, Mail_Mime, MDB2, Zend)5.
PHPMysql环境搭建xampp安装使用教程.pdf
(IPV6 enabled)* MySQL 5.1.41 (Community Server) with PBXT engine 1.0.08-rc* PHP 5.3.1* PEAR (PEAR, Mail_Mime


Framework
