如何在Zend_Mail中设置默认的setFrom

时间:2014-07-12 21:09:40

标签: php email zend-framework zend-mail

如何在Zend_Mail

中设置带标题的默认setFrom字段

如果我发送这样的邮件

public function sendActivationEmail($id) {
    $mail = new Zend_Mail();
    $mail   ->addTo('emailId1@gmail.com',"Recepient Name")
            ->setFrom("emailId1@gmail.com","Site Name")
            ->setSubject("My Subject")
            ->setBodyText("Some body msg")
            ->setBodyHtml("Some body msg")
            ->send();
}

我收到一封格式好的电子邮件,邮件中的From Field为"网站名称"

但是如果我发送没有setFrom的邮件,我仍然收到邮件,但标题是" emailId1@gmail.com"。我不想使用SetFrom()来获取" Site From"。有没有办法我可以设置它以便#34;网站名称"默认情况下被选中?

我已按照本教程设置了我的电子邮件:http://www.zendcasts.com/introduction-to-zend_mail/2010/02/

谢谢,

2 个答案:

答案 0 :(得分:1)

如果要为from属性设置默认电子邮件地址,可以使用setDefaultFrom()静态方法,如下所示:

例如,在你的boostrap中:

protected function _initFromMail(){
    // You can get the mail from an init file
    Zend_Mail::setDefaultFrom('emailId1@gmail.com', 'Site Name');
}

在您的功能中,自动发送来自地址的邮件。

public function sendActivationEmail($id) {
    $mail = new Zend_Mail();
    $mail   ->addTo('emailId1@gmail.com',"Recepient Name")
            ->setSubject("My Subject")
            ->setBodyText("Some body msg")
            ->setBodyHtml("Some body msg")
            ->send();
}

答案 1 :(得分:0)

我可能只是创建Zend_Mail的子类并使用它。如下所示:

class My_Mail extends Zend_Mail
{
    public function __construct($charset = null)
    {
        parent::__construct($charset);
        setFrom('emailId1@gmail.com, 'Site Name');
    }
}

然后用法是:

$mail = new My_Mail();
$mail   ->addTo('emailId1@gmail.com','Recipient Name')
        ->setSubject('My Subject')
        ->setBodyText('Some body msg')
        ->setBodyHtml('Some body msg')
        ->send();

有关如何在My_伪命名空间中自动加载类的常规要求将适用。例如,您可以添加:

autoloaderNamespaces[] = My_

application/config/application.ini