在php邮件中自动附加文件

时间:2010-06-01 18:01:36

标签: php email

我想用php邮件发送pdf文件。我知道文件的名称和位置(以cup-pdf打印的发票),并且当我点击我网站上的按钮时,想要在php中自动发送。如何才能做到这一点?感谢

2 个答案:

答案 0 :(得分:2)

您应该使用为此构建的类之一,例如PEAR Mail。 有关更多解释,假设我们只使用纯文本UTF8内容和PDF文件。

  • uniqboundary应该替换为某种独特的字符串
  • $fileType是您文件的MIME类型

这里是代码:

$headers = 'MIME-Version: 1.0'."\r\n"
    .'Content-Type: multipart/related; boundary="--uniqboundary"'."\r\n";

$body = '--uniqboundary."\r\n".
    .'Content-Type: text/plain; charset=utf-8'."\r\n"
    .'Content-Transfer-Encoding: 8bit'."\r\n\r\n"
    .$text
    .'--uniqboundary'."\r\n"
    .'Content-Type: '.$fileType.'; name="'.basename($filename).'"'."\r\n"
    .'Content-Transfer-Encoding: base64'."\r\n"
    .'Content-Disposition: attachment; filename="'.basename($filename).'"'."\r\n\r\n";

$lineSize = filesize($filename) + 1;
$f = fopen($filename, 'r');
$chunks[] = chunk_split(base64_encode(fread($f, $lineSize)));
fclose($f);

$body .= implode("\r\n", $chunks)
    .'--uniqboundary--'."\r\n";

mail($to, $subject, $body, $headers);

它应该有用。

答案 1 :(得分:0)

phpmailer是一个很好的选择,但需要一个smtp帐户来实现它