使用zend / mail发送电子邮件

时间:2014-07-07 12:47:55

标签: php email zend-framework2

我想在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的新成员。

有人可以帮我这个吗?

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();