Zend_Mail 使用 $mail->setReplyTo 发送电子邮件的错误

发布于 2024-08-24 08:33:03 字数 1595 浏览 8 评论 0原文

为什么 setReplyTo($reply_to_mail) 向 $reply_to_mail 发送电子邮件?难道不应该只将电子邮件地址添加到电子邮件中的回复字段吗?

目前,如果从网站表单发送邮件并填写回复字段,消息将发送到回复电子邮件和我们的管理电子邮件。

为什么它会重复电子邮件?应仅发送至我们的管理员电子邮件。

class Helper_Mail extends Zend_Controller_Action_Helper_Abstract
{
    public function direct($email,$from,$message,$title,$replyto='')
    {
        $this->sendmail($email,$from,$message,$title,$replyto);
    }

    private function sendMail($email,$from,$message,$title,$replyto)
    {
        /* Configuring SMTP settings */
        $config = array(
            'auth' => 'login',
            'ssl' => 'tls',
            'username' => '[email protected]',
            'password' => 'password',
            'port' => 587);

        $smtpHost = new Zend_Mail_Transport_Smtp('smtp.gmail.com',$config);
        Zend_Mail::setDefaultTransport($smtpHost);

        $mail = new Zend_Mail('UTF-8');
        $mail->setBodyHtml($message);
        $mail->setFrom('[email protected]', $from);
        $mail->addTo($email);
        $mail->setSubject($title);

        if(!empty($replyto))
        {
            $mail->setReplyTo($replyto);
        }

        try
        {
            $mail->send();
        }
        catch(Zend_Mail_Exception $e)
        {
            echo $e->getMessage();
        }
    }
}

Why does setReplyTo($reply_to_mail) send email to $reply_to_mail? Shouldn't it just add email adress to reply-to field in the email message?

Currenyly if sending mail from website form and filling reply-to field, message sends to reply-to email and to our admin email.

Why does it duplicates email? Should send only to our admin email.

class Helper_Mail extends Zend_Controller_Action_Helper_Abstract
{
    public function direct($email,$from,$message,$title,$replyto='')
    {
        $this->sendmail($email,$from,$message,$title,$replyto);
    }

    private function sendMail($email,$from,$message,$title,$replyto)
    {
        /* Configuring SMTP settings */
        $config = array(
            'auth' => 'login',
            'ssl' => 'tls',
            'username' => '[email protected]',
            'password' => 'password',
            'port' => 587);

        $smtpHost = new Zend_Mail_Transport_Smtp('smtp.gmail.com',$config);
        Zend_Mail::setDefaultTransport($smtpHost);

        $mail = new Zend_Mail('UTF-8');
        $mail->setBodyHtml($message);
        $mail->setFrom('[email protected]', $from);
        $mail->addTo($email);
        $mail->setSubject($title);

        if(!empty($replyto))
        {
            $mail->setReplyTo($replyto);
        }

        try
        {
            $mail->send();
        }
        catch(Zend_Mail_Exception $e)
        {
            echo $e->getMessage();
        }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怎言笑 2024-08-31 08:33:03

如果您使用的是 Zend > 版本,则可以使用 Zend_Mail::setReplyTo() 1.8

如果不是(<= 1.8),你应该使用 Zend_Mail::addHeader('Reply-To', '[电子邮件受保护]')

You can use Zend_Mail::setReplyTo() if you are using a version of Zend > 1.8

If not (<= 1.8) you should use Zend_Mail::addHeader('Reply-To', '[email protected]')

第几種人 2024-08-31 08:33:03

这是一个错误,已在新版本中修复。 ;)

It was a bug, fixed in new versions. ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文