Php 使用zend/mail发送电子邮件

Php 使用zend/mail发送电子邮件,php,email,zend-framework2,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@hotmai

我想在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 framework 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();

我建议你去看看。请注意,我是Soflomo mail的作者,但它在发送邮件方面对您有很大帮助。它简化了配置和依赖的麻烦

composer.json
文件中放入
“soflomo/mail”:“~0.3”
,然后运行以下命令:

php composer.phar update soflomo/mail
接下来,在
application.config.php
中启用模块
Soflomo\Mail
。当您使用Zend\Mvc时,您将拥有一个控制器/操作,该控制器/操作将触发电子邮件。对于最简化的用例,您可以执行以下操作:

公共函数doAction()
{
//你的一些逻辑
$service=$this->getServiceLocator()->get('Soflomo\Mail\service\MailService');
$service->send(数组)(
'到'=>'email@hotmail.be',
'收件人姓名'=>'电子邮件',
'来自'=>'email@hotmail.be',
'发件人姓名'=>'电子邮件',
“主题”=>“它甚至是电子邮件verzonden van de computer”,
'模板'=>'邮件/消息/默认'
));
} 
现在,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很相似。

你能解释一下你的问题是什么吗?你试过什么?您是否使用Zend\Mvc?你只使用一个小的php脚本吗?你的目标是什么?问题是它不发送电子邮件。是的,我正在使用Zend\Mvc。我现在只是想发一封简单的电子邮件。之后,它必须在一天中的特定时间发送电子邮件。但现在我正试图发送一封“简单”的电子邮件。我尝试了在framework.zend.com/manual网站上找到的几乎所有东西。我不知道该怎么做才能使它起作用。也感谢您回答这个问题。您确定这不是sendmail的问题吗?您可以使用PHP
mail()
命令发送电子邮件吗?问题是关于ZF2,而不是ZF1