我想使用wordpress发送带附件的电子邮件' wp_mail函数。
使用此功能可以正常发送电子邮件,但在查看我的电子邮件时,附件并不存在。
function dd_send_email(){
$dd_path = $_POST['upload_image'];
// echo $dd_path;
$email_sent = false;
// get email template data
$email_template_object = dd_get_current_options();
// if email template data was found
if ( !empty( $email_template_object ) ):
// setup wp_mail headers
$wp_mail_headers = array('Content-Type: text/html; charset=UTF-8');
$mail_attachment = $dd_path;
// use up_mail to send email
$email_sent = wp_mail( array( 'example@mail.no') , $email_template_object['dd_emne_forhaandsbestilling'], $email_template_object['dd_email_text_forhaandsbestilling'], $wp_mail_headers, $mail_attachment );
endif;
return $email_sent;
}
变量$dd_path
(类似于:http://localhost/norskeanalyser/wp-content/uploads/Testanalyse-2.pdf)包含我从另一个函数中的媒体上传器上传的文件的路径。
感谢您的帮助!
答案 0 :(得分:0)
我自己找到了答案。因为wp_mail需要像/uploads/2016/03/example.jpg那样的文件路径,所以我们必须将我们的url转换为这样的路径。
我通过以下方式实现了这一目标,并认为我可以与您分享:
// change url to path
$dd_url = $_POST['upload_image'];
$dd_path = parse_url($dd_url);
// cut the path to right directory
$array = explode("/norskeanalyser/wp-content", $dd_path['path']);
unset($array[0]);
$text = implode("/", $array);
然后我将$text
保存到$mail_attachment
并在wp_mail中调用它,如上所述。