我想在zend framework 2中使用zend / mail发送电子邮件。 我已经有了一些代码,但我不知道该把它放在哪里,也不知道如何触发它。
$mail = new Mail\Message();
$mail->setBody('This is the text of the email.');
$mail->setFrom('email@hotmail.be', 'email');
$mail->addTo('email@hotmail.be', 'email');
$mail->setSubject('Dit is een email verzonden van de computer');
$transport = new Mail\Transport\Sendmail('-freturn_to_email@hotmail.be');
$transport->send($mail);
我仍然是Zend框架2的新成员。
有人可以帮我这个吗?
答案 0 :(得分:0)
我建议你看看Soflomo\Mail。请注意,我是Soflomo邮件的作者,但它可以帮助您发送邮件。它简化了配置和依赖性麻烦。
将"soflomo/mail": "~0.3"
放入composer.json
文件并运行以下命令:
php composer.phar update soflomo/mail
接下来,在Soflomo\Mail
中启用模块application.config.php
。当您使用Zend \ Mvc时,您将拥有一个应该触发电子邮件的控制器/操作。对于最简化的用例,您可以这样做:
public function doAction()
{
// some of your logic
$service = $this->getServiceLocator()->get('Soflomo\Mail\Service\MailService');
$service->send(array(
'to' => 'email@hotmail.be',
'to_name' => 'email',
'from' => 'email@hotmail.be',
'from_name' => 'email',
'subject' => 'Dit is een email verzonden van de computer',
'template' => 'mail/message/default'
));
}
现在,Soflomo \ Mail通过呈现模板发送消息并将其用作消息文本。在这里,我定义了一条消息mail/message/default
,因此请使用此内容创建该文件(例如module/Application/view/mail/message/default.phtml
):
This is the text of the email.
最后要做的是配置Soflomo / Mail如何发送消息。您的问题使用Sendmail,因此我在此示例中也使用此方法。在config / autoload中创建配置文件,例如config/autoload/soflomo_mail.global.php
包含以下内容:
return array(
'soflomo_mail' => array(
'transport' => array(
'type' => 'sendmail',
),
),
);
如果你想切换到例如GMail作为传输层,用以下内容替换上面的配置:
return array(
'soflomo_mail' => array(
'transport' => array(
'type' => 'smtp',
'options' => array(
'name' => 'gmail.com',
'host' => 'smtp.gmail.com',
'port' => 587,
'connection_class' => 'login',
'connection_config' => array(
'ssl' => 'tls',
'username' => '%USERNAME%',
'password' => '%PASSWORD%',
),
),
'variables' => array(
'username' => '',
'password' => '',
),
),
),
);
并创建一个新文件config/autoload/soflomo_mail.local.php
:
return array(
'soflomo_mail' => array(
'transport' => array(
'variables' => array(
'username' => 'my-address@gmail.com',
'password' => '1234secure7890',
),
),
),
);
我猜Hotmail与GMail类似。
答案 1 :(得分:-2)
您可以在zend目录中使用它,
$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('somebody@example.com', 'Some Sender');
$mail->addTo('somebody_else@example.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send();