您好,我正在尝试使用wordpress发送带有附件的邮件wp_mail
功能,但我的邮箱中没有附件。
你能帮我查一下下面的代码并告诉我哪里错了吗。您可以看到我正在附件中播种图像。
<?php
$to = \'[email protected]\';
$subject = \'WordPress wp_mail\';
$message = \'
<html>
<body>
<table rules="all" style="border-color: #666;" cellpadding="10">
<tr>Hello WordPress</tr>
</table>
</body>
</html>
\';
$attachments = array( \'http://sitename/project/wp-content/plugins/my-plugin/uploads/sample_photo_01.jpg\' );
//$attachments = array(WP_CONTENT_DIR . \'/uploads/\'.$_FILES["myfile"]["name"]);
$headers[] = \'MIME-Version: 1.0\' . "\\r\\n";
$headers[] = \'Content-type: text/html; charset=iso-8859-1\' . "\\r\\n";
$headers[] = \'From: \'.get_option( \'blogname\' ).\' <\'.get_option( \'admin_email\' ).\'>\';
wp_mail( $to, $subject, $message, $headers, $attachments );
?>
谢谢。
最合适的回答,由SO网友:A.Jesin 整理而成
附件应始终使用绝对文件系统路径。
还要更改Content-Type
您应该使用wp_mail_content_type
滤器
<?php
function my_custom_email() {
$to = \'[email protected]\';
$subject = \'WordPress wp_mail\';
$message = \'
<html>
<body>
<table rules="all" style="border-color: #666;" cellpadding="10">
<tr>Hello WordPress</tr>
</table>
</body>
</html>
\';
$attachments = array( WP_PLUGIN_DIR . \'/my-plugin/uploads/sample_photo_01.jpg\' );
$headers[] = \'From: \'.get_option( \'blogname\' ).\' <\'.get_option( \'admin_email\' ).\'>\';
add_filter( \'wp_mail_content_type\', \'my_custom_email_content_type\' );
return wp_mail( $to, $subject, $message, $headers, $attachments );
}
function my_custom_email_content_type() {
return \'text/html\';
}
我将整个代码放在一个函数中,以便
wp_mail_content_type
筛选器仅适用于此电子邮件。
来源:
http://codex.wordpress.org/Function_Reference/wp_mail
http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_mail_content_type