0

我正在使用 Pear 的 Mail Mime 通过 SMTP Gmail 从我的服务器发送一封电子邮件。但是,当我添加附件时,它根本不显示。

$smtpinfo["host"] = "ssl://smtp.gmail.com";  
$smtpinfo["port"] = "465";  
$smtpinfo["auth"] = true;  
$smtpinfo["username"] = "xxx";  
$smtpinfo["password"] = "xxx";  

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

$mime = new Mail_mime();

$mime->setHTMLBody($html);

$mime->addAttachment("http://ww.url.of.a.file.that.exists.100percent.jpg", "image/jpeg");

$body = $mime->get(array('html_charset' => 'utf-8','charset' => 'utf-8'));

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

$smtp = Mail::factory('smtp', $smtpinfo);

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

一切正常,只是附件完全丢失了..我已经搜索了几个小时..我很感激任何提示..

4

1 回答 1

0

我的第一个想法是检查 addAttachment 方法的 [boolean] 响应,看看它是否返回“未找到”或其他类型的指示

$fileAttached = $mime->addAttachment("http://ww.url.of.a.file.that.exists.100percent.jpg", "image/jpeg");
echo ( !empty($fileAttached) ) ? "Attached successfully!" : "Uh, Houston?";

我最初的想法是,它期望“文件”对您的系统是“本地”,而不是通过 http 等访问。而且,即使它确实允许 HTTP 访问,您可能还需要检查您的 allow_url_fopen 在 .ini如果查看您的 phpinfo() 结果,文件以确保将其设置为 'enabled' {"On"。

关于“文件”的附加信息 -

http://pear.php.net/manual/en/package.mail.mail-mime.addattachment.php
于 2013-07-03T01:24:24.293 回答