使用带有附件但未收到附件的wp_mail

时间:2012-04-26 作者:tbm

我一直在研究多个示例,包括this one.

我收到电子邮件没问题,但没有附件。是否缺少文件类型的内容/类型?我看到的所有示例都只使用文本/html作为内容类型。

这是我所拥有的(应斯蒂芬的要求补充)

if( isset( $_POST[\'to\'] ) && isset( $_POST[\'from\'] ) ) {
global $wpdb;

$to = $_POST[\'to\'];
$from = $_POST[\'from\']; 
$name = get_bloginfo(\'name\');
$attachment = $_POST[\'file\'];
$headers  = \'MIME-Version: 1.0\' . "\\r\\n";
$headers .= \'Content-type: multipart/mixed; charset=iso-8859-1\' . "\\r\\n";

$headers .= \'From: \' . $name . \' <\' . $from . \'>\' . "\\r\\n";   
$subject = \'Send to Kindle\';
$msg = \'Yay! Your book has <a href="http://yahoo.com">arrived</a>\';

$mail_attachment = array( $attachment );
wp_mail($to, $subject, $msg, $headers, $mail_attachment);
echo \'Email sent\';
} else {
echo \'Email not sent\';
}

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

这个$attachment 的参数wp_mail 获取文件(或文件数组)-但必须完全指定文件路径。例如:

<?php
   $attachments = array(WP_CONTENT_DIR . \'/uploads/file_to_attach.zip\');
   $headers = \'From: My Name <[email protected]>\' . "\\r\\n";
   wp_mail(\'[email protected]\', \'subject\', \'message\', $headers, $attachments);
?>
(see Codex). 看来你的$_POST[\'file\'] 可能未指定完整路径。

附件必须连接到file path, 不是url。以下几点对我有用:

$to = $_POST[\'to\'];
$from = $_POST[\'from\']; 
$name = get_bloginfo(\'name\');

$headers = \'From: My Name <[email protected]>\' . "\\r\\n";

$subject = \'Send to Kindle\';

$msg = \'Yay! Your book has <a href="http://yahoo.com">arrived</a>\';

$mail_attachment = array(WP_CONTENT_DIR . \'/uploads/2012/03/image.png\');   

wp_mail($to, $subject, $msg, $headers, $mail_attachment);
Note: 我改变了headers 属性也是。我不完全确定您的示例试图做什么,但这意味着电子邮件的消息在某些电子邮件客户端上不可见。

结束

相关推荐