如何在Symfony 1.4中使用SwiftMailer从任务(控制台命令)发送电子邮件

许多开发人员对旧的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从任务(控制台命令)发送电子邮件】编码愉快!

    推荐阅读