许多开发人员对旧的Symfony 1.4框架不了解的是, Swift Mailer和它的后继者一样, 已经包含在项目中, 甚至自动将其自身注入到项目的所有控制器中。但是, 当你在任务中工作时(控制台命令), 尽管可以使用其他工具(例如Doctrine), 但SwiftMailer不能直接使用。
为了使Swift Mailer可以从Task进行访问, 你将需要包含swift_required.php文件, 该文件包含使用它所需的所有必需类。你可以将它包含在require_once中, 如下所示:
require_once dirname(__FILE__) . '/../../symfony-1.4.27/lib/vendor/swiftmailer/swift_required.php';
将其包含在任务中之后, 你将能够使用Swiftmailer照常发送电子邮件。如果你不知道如何操作, 我们将向你展示一个功能命令的完整示例, 该命令基本上将电子邮件发送给所需的收件人。
创建发送电子邮件的任务在project / lib / task目录中创建SendEmailTask??.class.php文件, 并添加以下代码作为文件内容:
<
?php// 1. Include SwiftMailer with the swift_required.php file, otherwise the namespaces of SwiftMailer won't be available.//Symfony 1.4 includes Swift Mailer inside the Symfony code.require_once dirname(__FILE__) . '/../../symfony-1.4.27/lib/vendor/swiftmailer/swift_required.php';
/** * Command to send a test email from Symfony 1.4 using Swift Mailer. * * You can run the command as: * *'php symfony ourcodeworld:send-email' * * @author Carlos Delgado <
dev@ourcodeworld.com>
*/class SendEmailTask extends sfBaseTask {public function configure(){$this->
namespace = 'ourcodeworld';
$this->
name = 'send-email';
$this->
briefDescription = 'Sends a test email';
$this->
detailedDescription = <
<
<
EOFSends an email with SwiftMailer (integrated version of Symfony 1.4)EOF;
}public function execute($arguments = array(), $options = array()) {$email = "cheese@cheese.ch";
$password = "ch33s3";
// 2. Prepare transport, change the smtp server adress and configuration$transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->
setUsername($email)->
setPassword($password);
// 3. Create the mailer$mailer = \Swift_Mailer::newInstance($transport);
// 4. Create the message instance$message = \Swift_Message::newInstance("Test Email")->
setFrom(array($email =>
'Subject Email'))->
setTo(array("targetemail@domain.com" =>
"targetemail@domain.com"))->
setBody("This is the content of my Email !", 'text/plain');
// 5. Send email !$mailer->
send($message);
}}
保存文件后, 你可以从终端使用php symfony ourcodeworld:send-mail运行命令。
【如何在Symfony 1.4中使用SwiftMailer从任务(控制台命令)发送电子邮件】编码愉快!
推荐阅读
- 如何将PHP脚本的执行限制为命令行(检测是否从CLI运行PHP)
- Prepaway-有关CompTIA 220-902认证考试的有用信息
- 如何在C#中检索控制台应用程序的可执行路径
- 如何在Google FeedBurner中启用Awareness API(FeedCount)
- 如何在Symfony 4中使用Doctrine正确计算表中的所有行
- 如何使用qpdf CLI删除PDF的密码
- Android(textview超链接)
- Android-是否可以将可点击链接添加到字符串资源中
- 在android上禁用setMovementMethod(LinkMovementMethod.getInstance())