在 mime smtp 中添加 pdf 的附件

Posted

技术标签:

【中文标题】在 mime smtp 中添加 pdf 的附件【英文标题】:add attachment of pdf in mime smtp 【发布时间】:2015-02-26 13:43:19 【问题描述】:

我正在使用 mime smtp 哟发送邮件。我的问题是邮件没有任何附件。我想发送带有附件的 pdf 邮件。 我的代码如下

$a = $fpdf->writehtml($fpdf, true, false, true, false, '')  ;
    //$a = $fpdf->Output()  ;


    $host     = 'smtp.ample.co.in';
$username = 'nasadnivas@aadsmple.co.in';
$password = 'asa3';

$to = "namadsivas@ampxle.co.in";
$from = "nadnivas@amsple.co.in";
$subject = "Attachments Test";
$filename = "test";

$headers = array(
  'To' => $to,
  'From' => $from,
  'Subject' => $subject
);

$smtp = Mail::factory('smtp', array('host'=>$host, 'auth'=>true, 'username'=>$username, 'password'=>$password));

$text = "Plain Text Email Content";
$html = "HTML Email Content\n";
//$attachment = "mail_serinv.php?tchyear=2014&tchfyear=14&tchcid=001&tninvid=105466&tcpflag=I&tcnflag=L";

$mime = new Mail_mime();
$mime -> setTXTBody($text);
$mime -> setHTMLBody($html);
$mime -> addAttachment($a, 'text/plain',$filename,false);

$body = $mime -> get();
$headers = $mime -> headers($headers);

$mail = $smtp -> send($to, $headers, $body);

if(PEAR::isError($mail)) 
  echo $mail->getMessage();
 else 
  echo 'Message sent';

我搜索了很多链接,发现没用。请帮助我找到解决方案

【问题讨论】:

addAttachment 是否返回成功/失败值?您能否将我们链接到该方法的文档? false 在这里做什么? 它显示了附件 test.php 与 0kb..no 数据 【参考方案1】:

试试这个:

将 PDF 文件保存到服务器(确保您对该文件夹具有 777 写入权限!):- 更多信息请访问:http://blog.startq.com/2011/10/25/fpdf-output-methods-for-pdf-files-in-php/#sthash.J5K9EQ4h.dpuf

$a = $fpdf->Output('directory/yourfilename.pdf','F');
...

$mime -> addAttachment($a, 'application/pdf',$filename,true);

【讨论】:

以上是关于在 mime smtp 中添加 pdf 的附件的主要内容,如果未能解决你的问题,请参考以下文章

带有多个附件 + html 的 SMTP 邮件 Mime

自动化发送邮件之SMTP

可以接收 MIME 附件的 Python SMTP 服务器

MIME 邮件未显示某些 pdf 和 .doc 附件

如何使用 MIME 添加和删除附件

无法在python中使用MIME发送带有pdf附件的电子邮件