当前位置: 首页 > 知识库问答 >
问题:

使用Codeigniter在电子邮件中发送pdf而不将其保存在服务器上

籍光熙
2023-03-14

我一直在尝试发送带有pdf附件的电子邮件,该附件由codeigniter中的MPDF库生成。从我的观点来看,我已经成功地将我的文件转换为pdf,或者我认为我已经转换了,但我找不到任何方法使用codeigniter中的给定功能将该文件附加到电子邮件。

在Codeignator的文档中,attach功能的描述混乱且不完整,这表明:

$这个-

其中$缓冲区是字符串report.pdf将是带有电子邮件的附件的fileName,

现在我关心的是,我是否可以附加生成的视图,如下所示:

ini_set('memory_limit', '20M');
// load library
$this->load->library('pdf');
$pdf = $this->pdf->load();

// boost the memory limit if it's low ;)
$html = $this->load->view('reports/someReport', array('var' => 123), true);
// render the view into HTML
$pdf->WriteHTML($html);
$this->email->attach($pdf->Output('', 'S'), 'attachment', 'report.pdf', 'application/pdf'); // is this okay or something is wrong here ?

如何将其成功附加到电子邮件并发送

共有1个答案

贺君浩
2023-03-14

首先,您可以将PDF文件保存在项目文件夹中,如attach。然后将此pdf位置设置为电子邮件附件。像贝娄一样:

<?php
ini_set('memory_limit', '20M');
// load library
$this->load->library('pdf');
$pdf = $this->pdf->load();

// boost the memory limit if it's low ;)
$html = $this->load->view('reports/someReport', array('var' => 123), true);
// render the view into HTML

$pdfFilePath = FCPATH . "attach/pdf_name.pdf";
$pdf->WriteHTML($html);
$pdf->Output($pdfFilePath, "F");

$result = $this->email
            ->from('example@test.com', 'From name')
            ->to('test@test.com')
            ->subject($subject)
            ->message($body)
            ->attach($pdfFilePath)
            ->send();
$this->email->clear($pdfFilePath);
if($result) {
    echo "Send";
    unlink($pdfFilePath); //for delete generated pdf file. 
}
?>
 类似资料:
  • 我在我的网站上创建了一个联系表单,并且,为了向网站帐户发送电子邮件(contact@mywebsite.com),我正在使用gmail smtp,使用与接收邮件相同的电子邮件。 所以,用户进入我的网站,点击联系页面,填写表格:姓名,电子邮件,信息。 比我发送以下代码的电子邮件: 电子邮件将进入“我的收件箱”contact@mywwebsite.com“,我可以正常阅读邮件,但是。。。当我点击“回复

  • Java: openjdk版本“11.0.11”2021-04-20 openjdk运行时环境(构建11.0.11+9-Ubuntu-0Ubuntu2.20.04) openjdk 64位服务器VM(构建11.0.11+9-Ubuntu-0Ubuntu2.20.04,混合模式,共享) 握手后新会话票证到达: SSL-Session: 协议:TLSv1.3 密码:TLS_AES_256_GCM_SH

  • 我正在尝试使用CodeIgniter的电子邮件库发送电子邮件。这是我写的代码。 错误:这是我得到的错误。 遇到以下SMTP错误:0php_network_getaddresses:getaddrinfo失败:名称或服务未知无法发送数据:AUTH LOGIN发送AUTH LOGIN命令失败。错误:无法发送数据:邮件从:从:遇到以下SMTP错误:无法发送数据:RCPT TO:到:遇到以下SMTP错误:

  • 我试图发送电子邮件使用gmail smtp使用javax.mail.下面是我的代码 代码工作正常当我在本地服务器上运行它时,但当我尝试在Elastic beanstek上运行它时(我的服务器在AWS EBS上运行),身份验证失败异常即将到来注意:我已打开从Google A/c设置访问不太安全的应用程序,但我仍然收到此错误 javax.mail.身份验证失败异常:534-5.7.14请通过您的网络浏

  • 问题内容: 问题答案: $config = Array( ‘protocol’ => ‘smtp’, ‘smtp_host’ => 'ssl://smtp.googlemail.com’, ‘smtp_port’ => 465, ‘smtp_user’ => ‘xxx’, ‘smtp_pass’ => ‘xxx’, ‘mailtype’ => ‘html’, ‘charset’ => ‘iso-8