【问题标题】:E-mail sent via CakePHP shows up with blank message body when accessed via POP通过 POP 访问时,通过 CakePHP 发送的电子邮件显示为空白消息正文
【发布时间】:2009-09-24 18:54:22
【问题描述】:

我正在为一个组织编写一个小型 CakePHP 应用程序,其中包含一个简单的联系表单,它接受电子邮件地址、主题和消息,并将消息通过电子邮件发送到该地址。

似乎一切正常,发送给我自己或组织中任何人的任何电子邮件都可以正常到达,除非他们通过 POP 访问邮件,他们中的大多数人都会这样做。在这种情况下,电子邮件带有主题,但正文是空白的。但是,如果邮件是通过 webmail 客户端读取的,则正文显示得很好。

还有其他人遇到过这个问题吗?是 CakePHP 的问题,电子邮件标题,还是我应该与托管公司交谈?我的代码直接基于the example given in the CakePHP documentation

这是接收请求数据并发送电子邮件的控制器操作:

function send() {
    if (!empty($this->data)) {
        $contact = $this->Contact->read(null, $this->data['ContactMessage']['contact_id']);
        $this->data['ContactMessage']['ip'] = $this->RequestHandler->getClientIp();
        $this->ContactMessage->create();
        if ($this->ContactMessage->save($this->data)) {
            $this->Email->to = $contact['Contact']['email'];
            $this->Email->subject = $this->data['ContactMessage']['subject'];
            $this->Email->replyTo = $this->data['ContactMessage']['email'];
            $this->Email->from = $this->data['ContactMessage']['email'];
            $this->Email->sendAs = 'both';
            $this->Email->send($this->data['ContactMessage']['message']);
            $this->redirect(array('controller' => 'contacts', 'action' => 'thanks'));
        } else {
            $this->redirect(array('controller' => 'contacts', 'action' => 'oops'));
        }
    }
}

【问题讨论】:

    标签: php email cakephp pop3


    【解决方案1】:

    我认为问题在于您不能使用 send() 来同时发送 html/文本消息。在将消息传递给发送基本文本消息的 send() 时,如果要发送 html 消息,则必须将数据设置为模板。

    http://book.cakephp.org/view/269/Sending-a-basic-message#Controller-273

    【讨论】:

    • 这似乎是问题所在。切换到“sendAs = 'text'”似乎已经修复了它。谢谢!
    猜你喜欢
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    相关资源
    最近更新 更多