【问题标题】:Send attachment to email using wp_mail使用 wp_mail 将附件发送到电子邮件
【发布时间】:2016-09-20 02:37:26
【问题描述】:

我正在使用 wordpress 4.4.2。

文件类型的格式代码:

<input placeholder="'.__( 'Select File', 'mk_framework' ).'" type="file" name="file" id="file" class="contact_file file-form select-input full"/>

我使用以下代码上传文件并将附件发送到电子邮件。

if ( ! function_exists( 'wp_handle_upload' ) ) {
  require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile && ! isset( $movefile['error'] ) ) {
  echo "File is valid, and was successfully uploaded.\n";
  var_dump( $movefile );
  $attachments = $movefile[ 'file' ];
} else {
  echo $movefile['error'];
}

wp_mail($to, $subject, $body, $headers, $attachments);

我还在 php.ini 中增加了 'upload_max_filesize 和 'post_max_size' 变量的大小,但无法获得电子邮件附件。

但它仍然会给我这样的错误:

文件为空。请上传更实质性的内容。此错误也可能是由于您的 php.ini 中禁用了上传,或者 post_max_size 被定义为小于 php.ini 中的 upload_max_filesize。

那么有没有办法做到这一点? 任何帮助/建议将不胜感激。

【问题讨论】:

  • 您的表单中有必要的enctype="multipart/form-data" 吗?
  • 是的,我在表单中有 enctype="multipart/form-data"

标签: php wordpress email-attachments contact-form


【解决方案1】:

迟到的答复;

您需要更改上传文件夹权限

喜欢

chown -R www-data:www-data /var/www/html

您需要使用array 进行附件。

if ( ! function_exists( 'wp_handle_upload' ) ) {
  require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile && ! isset( $movefile['error'] ) ) {
  echo "File is valid, and was successfully uploaded.\n";
  var_dump( $movefile );
  $attachments = array($movefile[ 'file' ]);
} else {
  echo $movefile['error'];
}

wp_mail($to, $subject, $body, $headers, $attachments);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 2015-07-20
    • 2013-02-07
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多