использовать PHP Swiftmailer в Cron Jobs в Symfony 1.4? - PullRequest
1 голос
/ 01 ноября 2010

Я использую Symfony 1.4 с Propel в качестве ORM.Я настроил планировщики веб-сервера для запуска почтовой рассылки каждый час.Для отправки писем я использую почтовый класс PHP Swift, а не встроенный в Symfony Swiftmailer (по умолчанию в 1.3,1.4).Но при использовании это дает мне ошибку .. как "Catchable fatal error: Argument 1 passed to Swift_Transport_EsmtpTransport::__construct() must implement interface Swift_Transport_IoBuffer, none given in /home/msconslt/sfprojects/test/lib/mailClasses/classes/Swift/Transport/EsmtpTransport.php on line 64".Код, который я использую ...

  require_once(dirname(__FILE__).'/../../config/ProjectConfiguration.class.php');
  $configuration =ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);
  // Remove the following lines if you don't use the database layer
  $databaseManager = new sfDatabaseManager($configuration);

 //Create the Transport
 $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
 ->setUsername('myid@gmail.com')
 ->setPassword('mypassword')
 ;

//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

 //Create a message
 $message = Swift_Message::newInstance("Test Mail")
 ->setFrom(array('myid@gmail.com' => 'Harry'))
->setTo(array('someid@gmail.com'))
->setBody('<html>'.
 '<head></head>'.
 '<body> <span>Dear, </span><br/> Hi there..</body>'.
 '</html>',
 'text/html'
 );

 $mailer->send($message);

Есть ли другой способ отправки почты через задания Cron ??

Ответы [ 2 ]

2 голосов
/ 02 ноября 2010

Да.См. Соответствующую часть книги 1.4: Отправка электронного письма с заданием .

1 голос
/ 12 января 2012

Эта проблема связана с тем, что вам нужно добавить эту ссылку в свои таксы:

 requiere_once dirname(__FILE__) . '/../vendor/symfony/lib/vendor/swiftmailer/swift_required.php
...