使用 Mandrill 在 Zend Framework 2 中发送邮件 API
Sending mail in Zend Framework 2 using Mandrill API
我一直在尝试设置我的 Zend Framework 环境来发送邮件 localhost.I 尝试使用 Soflomo\Mail for sending email to users who register on my web app using my RegistrationController and there when index action is called,sendConfirmationMail() function is also called within that.I want to integrate third party email providers like Mandrill with it and SlmMail 是一个与各种第三方集成的模块 API 发送mails.I 想使用 Mandrill.And 设置交易邮件,我很困惑。
如果有人曾将 Mandrill 与 Zend Framework 2 集成,请通过示例启发我或指导我如何设置完整的 process.Any 帮助将不胜感激。
所以假设你有这个控制器动作:
public function sendAction()
{
// some logic
$this->sendConfirmationMail();
}
使用 Soflomo\Mail 和 SlmMail,您可以 link 以下两种方式。
首先,SlmMail 提供传输。有一个 Mandrill 运输工具,所以请先关注它的 installation instructions。如果您复制了配置并设置了您的凭据,您将有一个名为 SlmMail\Mail\Transport\MandrillTransport
.
的可用服务
private function sendConfirmationMail()
{
$mail = new \Zend\Mail\Message;
$transport = $this->getServiceLocator()
->get('SlmMail\Mail\Transport\MandrillTransport');
$transport->send($mail);
}
显然,这不是最好的方法。最好是使用 dependency injection instead of the service locator pattern。还有 Soflomo\Mail
可以帮助进行此设置。
然后,将 Mandrill 传输附加为 Soflomo\Mail 传输。在您的配置中:
'service_manager' => [
'aliases' => [
'Soflomo\Mail\Transport' => 'SlmMail\Mail\Transport\MandrillTransport',
],
],
这样,如果 Soflomo\Mail 加载传输,它会从 SlmMail 加载传输。接下来,Soflomo\Mail 提供了一个门面服务,您可以将其加载到您的控制器中:
use Soflomo\Mail\Service\MailServiceInterface;
class RegistrationController extends AbstractActionController
{
private $service;
public function __construct(MailServiceInterface $service)
{
$this->service = $service;
}
public function sendAction()
{
// some logic
$this->sendConfirmationMail();
}
private function sendConformationMail()
{
$this->service->send([
/* here all your options*/
]);
}
}
剩下的就是在控制器中注入服务了。这在ZF2中是比较标准的流程,这里就不多说了。如果您需要此信息,在 ZF2 manual 中有完美的解释。请记住您要注入的服务名为 Soflomo\Mail\Service\MailService
.
我一直在尝试设置我的 Zend Framework 环境来发送邮件 localhost.I 尝试使用 Soflomo\Mail for sending email to users who register on my web app using my RegistrationController and there when index action is called,sendConfirmationMail() function is also called within that.I want to integrate third party email providers like Mandrill with it and SlmMail 是一个与各种第三方集成的模块 API 发送mails.I 想使用 Mandrill.And 设置交易邮件,我很困惑。
如果有人曾将 Mandrill 与 Zend Framework 2 集成,请通过示例启发我或指导我如何设置完整的 process.Any 帮助将不胜感激。
所以假设你有这个控制器动作:
public function sendAction()
{
// some logic
$this->sendConfirmationMail();
}
使用 Soflomo\Mail 和 SlmMail,您可以 link 以下两种方式。
首先,SlmMail 提供传输。有一个 Mandrill 运输工具,所以请先关注它的 installation instructions。如果您复制了配置并设置了您的凭据,您将有一个名为 SlmMail\Mail\Transport\MandrillTransport
.
private function sendConfirmationMail()
{
$mail = new \Zend\Mail\Message;
$transport = $this->getServiceLocator()
->get('SlmMail\Mail\Transport\MandrillTransport');
$transport->send($mail);
}
显然,这不是最好的方法。最好是使用 dependency injection instead of the service locator pattern。还有 Soflomo\Mail
可以帮助进行此设置。
然后,将 Mandrill 传输附加为 Soflomo\Mail 传输。在您的配置中:
'service_manager' => [
'aliases' => [
'Soflomo\Mail\Transport' => 'SlmMail\Mail\Transport\MandrillTransport',
],
],
这样,如果 Soflomo\Mail 加载传输,它会从 SlmMail 加载传输。接下来,Soflomo\Mail 提供了一个门面服务,您可以将其加载到您的控制器中:
use Soflomo\Mail\Service\MailServiceInterface;
class RegistrationController extends AbstractActionController
{
private $service;
public function __construct(MailServiceInterface $service)
{
$this->service = $service;
}
public function sendAction()
{
// some logic
$this->sendConfirmationMail();
}
private function sendConformationMail()
{
$this->service->send([
/* here all your options*/
]);
}
}
剩下的就是在控制器中注入服务了。这在ZF2中是比较标准的流程,这里就不多说了。如果您需要此信息,在 ZF2 manual 中有完美的解释。请记住您要注入的服务名为 Soflomo\Mail\Service\MailService
.