查看文章
 
使用Zend_Mail收发邮件的一点笔记!
2007-10-12 13:33

Zend Framework发展到1.02,其下的Zend_Mail发展也日渐成熟。现在习惯于Zend Framework了,也懒得去动Phpmailer发送邮件了,直接采用Zend Framework 发送也还是比较愉快的一件事(不过利用Zend Framework收邮件则遇到一点问题)

利用Gmail发送 带附件的 HTML 邮件:

        set_time_limit(0);//网速太慢,30秒内铁定发送不成功
        
$mailTransport = new Zend_Mail_Transport_Smtp(    'smtp.gmail.com',        array(    'auth' => 'login'
,
                                                                                    
'username' => 'zhangsilly'
,
                                                                                    
'password' => '*******'
,
                                                                                    
'ssl' => 'ssl'
));
        
$mail = new Zend_Mail('utf-8'
);
        
$mail->setBodyHtml('<b>你好中国</b>'
);
        
$mail->setSubject('中国你好'
);
        
$mail->createAttachment(    file_get_contents('E:\\sina.png'), 'image/png', Zend_Mime::DISPOSITION_INLINE  , Zend_Mime::ENCODING_BASE64 , 'sina.png'
);
        
$mail->setFrom('zhangsilly@gmail.com', 'WPS2000'
);
        
$mail->addTo('23u.net@163.com', 'WPS2000先生'
);
        
$mail->send($mailTransport);

注意:对于附件的编码 ,二进制内容必须是 Zend_Mime:ENCODING_BASE64, 另外的 7 bit、8 bit 编码不用试了,铁定发送不成功的(收到的附件无法打开),就当没看见吧

setFrom也必须提供自己的email地址,很明显,防止乱发邮件嘛

;extension=php_openssl 前面的 ;      也得去掉(没看到也没关系,PHP会提醒你的)

另外,Zend Framework改了很多,中文手册上的API总是落后于实际(例如上文的发送附件),建议不要看中文的翻译,误导人

对于使用163的:

        $mailTransport = new Zend_Mail_Transport_Smtp(    'smtp.163.com',        array(    'auth' => 'login',
                                                                                
'username' => '23u.net@163.com'
,
                                                                                
'password' => '******'));

很弱智的163,我们的用户名居然还要包含那个 @163.com

很明显,Zend_Mail无论从功能、还是从文档方面来讲,都优于phpmailer,采用PHP5的玩家们没必要抱着史前的phpmailer不放了,我们现在有了更好的选择。


类别:默认分类||添加到搜藏 |分享到i贴吧|浏览(1879)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu