将 Zend 框架最小化为 Zend_Mail? [复制]
Posted
技术标签:
【中文标题】将 Zend 框架最小化为 Zend_Mail? [复制]【英文标题】:Minimizing Zend Framework to Zend_Mail? [duplicate] 【发布时间】:2012-03-06 01:12:10 【问题描述】:可能重复:Use Zend Framework components without the actual framework?
我只需要 Zend Framework 的 Zend_Mail 函数,但整个框架大约有 300MB 大小。有没有办法将其缩减为仅包含基本内容和 Zend_Mail 以节省一些磁盘空间?
【问题讨论】:
没那么大。 Zend 框架有 20-25 MB。 好吧,那我的确实有些问题。我的意思是,我没有选择最小包,因为我不知道 Zend_Mail 是否包含在内,但它仍然显示“295 MB(309,803,141 字节)”。 你为什么不简单地使用 Swift 邮件程序? 据我所知Swift Mailer只能发送邮件,我也需要接收邮件。 ***.com/questions/1402989/… 【参考方案1】:从这里下载 Zend 最小包。
http://framework.zend.com/releases/ZendFramework-1.11.11/ZendFramework-1.11.11-minimal.zip
它没有那么大。未压缩版本为 23 MB。它有你需要的 Zend_Mail 类。
【讨论】:
谢谢。在页面上找不到有关最小内容的任何信息。虽然 23MB 对于发送和接收邮件的能力来说仍然不算小。 :P 如果您确实需要减少这种情况,请尝试删除一些不需要的类。假设 Zend_Pdf 等。我认为它不会对您的代码造成问题。或者,您可以使用其他一些编写为相互依赖的电子邮件类。【参考方案2】:是的,我以前使用 Zend_Mail 和 SMTP 独立,这里是我需要的文件。如果您也只想使用 sendmail,我还将其缩减为您需要的。
如果你想使用 Sendmail,那是最简单的。您的依赖项是:
Zend/Exception.php Zend/Mail.php Zend/Mime.php Zend/Mail/Exception.php Zend/Mail/Transport/Abstract.php Zend/Mail/Transport/Exception.php Zend/Mail/Transport/Sendmail.php Zend/Mime/Exception.php Zend/Mime/Message.php Zend/Mime/Part.php对于这些文件,这里是一个使用示例:
<?php
// optionally
// set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/Zend');
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Sendmail.php';
$transport = new Zend_Mail_Transport_Sendmail();
$mail = new Zend_Mail();
$mail->addTo('user@domain')
->setSubject('Mail Test')
->setBodyText("Hello,\nThis is a Zend Mail message...\n")
->setFrom('sender@domain');
try
$mail->send($transport);
echo "Message sent!<br />\n";
catch (Exception $ex)
echo "Failed to send mail! " . $ex->getMessage() . "<br />\n";
如果您需要 SMTP,那么您需要包含更多的依赖项。除了上述之外,您至少需要:
Zend/Loader.php Zend/Registry.php Zend/Validate.php Zend/Mail/Protocol/Abstract.php Zend/Mail/Protocol/Smtp.php Zend/Mail/Transport/Smtp.php Zend/Validate/Abstract.php Zend/Validate/Hostname.php Zend/Validate/Interface.php Zend/Validate/Ip.php Zend/Validate/主机名/* Zend/邮件/协议/Smtp/Auth/*然后你可以这样做:
<?php
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';
$config = array(//'ssl' => 'tls',
'port' => '25', //465',
'auth' => 'login',
'username' => 'user',
'password' => 'password');
$transport = new Zend_Mail_Transport_Smtp('smtp.example.com', $config);
$mail = new Zend_Mail();
$mail->addTo('user@domain')
->setSubject('Mail Test')
->setBodyText("Hello,\nThis is a Zend Mail message...\n")
->setFrom('sender@domain');
try
$mail->send($transport);
echo "Message sent!<br />\n";
catch (Exception $ex)
echo "Failed to send mail! " . $ex->getMessage() . "<br />\n";
【讨论】:
这正是我正在寻找的答案,谢谢!我会投票赞成,但由于我是新手,我不能,因为 @Big-Blue 不用担心,我认为您仍然可以接受它,或者当您的代表更高时再回来查看。如果您还有其他问题,请随时发表评论。我有工作示例,您也可以下载。 ~画了以上是关于将 Zend 框架最小化为 Zend_Mail? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
application.ini 中的多个 Zend_Mail 配置
在 Zend Framework 2 中使用 Zend_Mail + Zend_Mime 创建 HTML 电子邮件