无法使用 CakePHP Mail 发送电子邮件附件 PDF

Posted

技术标签:

【中文标题】无法使用 CakePHP Mail 发送电子邮件附件 PDF【英文标题】:Cannot send email attachment PDF with CakePHP Mail 【发布时间】:2015-10-19 04:10:57 【问题描述】:

任何人都可以帮助我解决这个问题。我正在尝试使用 Cakephp 发送 PDF 附件。我认为一切都应该正常工作。但是为什么我会收到屏幕截图中的电子邮件结果?

我发送 pdf 的代码:

function send_notif_email($email=null,$template='default',$data=null,$subject='Notification',$noreplay=true,$attachment=array()) 
    $Email = new CakeEmail('default');
    $emailData = $data;

    if($Email->template($template)
    ->emailFormat('html')
    ->to($email)
    ->from(($noreplay == true)?Configure::read('Meta.noreplay'):Configure::read('Meta.email'))
    ->replyTo(($noreplay == true)?Configure::read('Meta.noreplay'):Configure::read('Meta.email'))
    ->setHeaders(array(
        'From' => ($noreplay == true)?Configure::read('Meta.noreplay'):Configure::read('Meta.email'), 
        'Reply-To' => ($noreplay == true)?Configure::read('Meta.noreplay'):Configure::read('Meta.email'),
        'MIME-Version' => '1.0', 
        'Content-type' => 'text/html; charset=iso-8859-1', 
    ))
    ->attachments($attachment)
    ->subject($subject)
    ->viewVars(compact('emailData')) /*set data*/
    ->send()) 
        return true;
    

    return false;

我只是检查了所有附件数组和文件路径,一切都很好:

array(
        'penawaran_0001_VN_SPN_X_2015' => '/home3/salesku/public_html/penawaran-online/app/webroot/upload/offer/00001/penawaran_0001_VN_SPN_X_2015.pdf',
        'X100.pdf' => '/home3/salesku/public_html/penawaran-online/app/webroot/upload/attachment/00001/X100.pdf'
    )

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我想我刚刚发现了问题。 看起来 setHeader 应该从方法 send_notif_email 中删除。

不适用于新代码:

function send_notif_email($email=null,$template='default',$data=null,$subject='Notification',$noreplay=true,$attachment=array()) 
    $Email = new CakeEmail('default');
    $emailData = $data;

    if($Email->template($template)
    ->emailFormat('html')
    ->to($email)
    ->from(($noreplay == true)?Configure::read('Meta.noreplay'):Configure::read('Meta.email'))
    ->replyTo(($noreplay == true)?Configure::read('Meta.noreplay'):Configure::read('Meta.email'))
    ->attachments($attachment)
    ->subject($subject)
    ->viewVars(compact('emailData')) /*set data*/
    ->send()) 
        return true;
    

    return false;

谢谢大家。

【讨论】:

以上是关于无法使用 CakePHP Mail 发送电子邮件附件 PDF的主要内容,如果未能解决你的问题,请参考以下文章

从phpmailer发送邮件正在工作,但cakephp邮件不能与saim cradienial一起使用

Java发送QQ邮件-附jar包下载链接

无法使用 SMTP 发送电子邮件(获取 javax.mail.MessagingException:无法将套接字转换为 TLS;)

CodeIgniter 无法使用 PHP mail() 发送电子邮件

我无法从 Java Mail Api 发送 Yahoo Mail

无法理解为什么我不使用PHP mail()函数向我的主机邮件发送邮件[复制]