在zend框架上通过SMTP发送电子邮件

时间:2011-04-18 08:45:56

标签: php zend-framework email smtp

$config = array('auth' => 'login',
                'username' => '****@gmail.com',
                'password' => '****',
                'port' => '25',
                'ssl' => 'tls');


$transport = new Zend_Mail_Transport_Smtp('smtp.googlemail.com', $config);

在那之后我该怎么做,我可以在哪里放置身体和收件人地址。

3 个答案:

答案 0 :(得分:1)

Zendframework

的手册中对其进行了描述
Zend_Mail::setDefaultTransport($transport);

然后在其他地方实现Zend_Mail,写下你的邮件并发送它。

答案 1 :(得分:1)

有关完整示例,请参阅documentation(尽管Zend文档通常不太好。)

基于评论here

$mail = new Zend_Mail();
$tr = new Zend_Mail_Transport_Smtp(...);
$mail->setFrom('...', 'Server');
$mail->addTo($to, '....');
$mail->setSubject($subject);
$mail->send();
Zend_Mail::setDefaultTransport($tr);
$mail->setBodyText($body);

答案 2 :(得分:1)

您的示例显示空链接,因此无法显示任何内容。

除非这是您以前在此处发布的修改示例?

运行时,以下内容是否显示,如果不是,您会得到什么。

$smtpHost = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
                $mail = new Zend_Mail();
                $mail->setBodyText($form->getValue('body'));
                $mail->setBodyHtml('<a href = "http://localhost:8080/certificate/certificate-image/id/' . $id . '">my link</a>');
                $mail->setFrom($certtime['email'], $certtime['first_name'] . $certtime['last_name']);
                $mail->addTo($form->getValue('reciever'));
                $mail->setSubject('My Certificate');
                $mail->send($smtpHost);