附加文件在 Wordpress 中使用函数 wp_mail 损坏

Attached file are broken using function wp_mail in Worpdress

在我的本地,当我使用带有附件的 wp_mail() 时,它可以工作,但是当我在产品上时,它没有。

我在电子邮件中收到的文件是一个 .dat 文件。我看是因为传输有问题

有人有想法吗?

function sendEmail() {
    $email = $_POST['email'];
    $fileName = $_FILES['cv']['tmp_name'];

    if (!empty($_POST['subject'])) {
        $subject = '[C.V] ' . $_POST['subject'];
    } else {
        $subject = '[C.V]';
    }

    $header = [
            'Reply-To' => $email . ' <' . $email . '>',
            'From: ' . $email . ' <' . $email . '>',
    ];

    $message = 'My message';

    add_filter( 'wp_mail_content_type', 'set_content_type' );
    if (wp_mail('myemail@email.com', $subject, $message, $header, $fileName)) {
        return true;
    } else {
        return false;
    }
}

编辑

这是 .dat 文件的第 68 行

    %PDF-1.5
%âãÏÓ
12 0 obj
<<
/Linearized 1
/L 227667
/H [ 1346 222 ]
/O 14
/E 189602
/N 2
/T 227300
>>
endobj

xref
12 41
0000000017 00000 n
0000001289 00000 n
0000001568 00000 n
0000002081 00000 n
0000002218 00000 n
0000012212 00000 n
0000012252 00000 n
0000014915 00000 n
0000025948 00000 n
0000035396 00000 n
0000046815 00000 n
0000056000 00000 n
0000066681 00000 n
0000077517 00000 n
0000086394 00000 n
0000095281 00000 n
0000096108 00000 n
0000096943 00000 n
0000097770 00000 n
0000098470 00000 n
0000098763 00000 n
0000124547 00000 n
0000124713 00000 n
0000124743 00000 n
0000124951 00000 n
0000125033 00000 n
0000125341 00000 n
0000125439 00000 n
0000138448 00000 n
0000138772 00000 n
0000139520 00000 n
0000139807 00000 n
0000169417 00000 n
0000169578 00000 n
0000169608 00000 n
0000169847 00000 n
0000170149 00000 n
0000170254 00000 n
0000184698 00000 n
0000185046 00000 n
0000001346 00000 n
trailer
<<
/Size 53
/Prev 227289
/Info 11 0 R
/Root 13 0 R
/ID [<99f020cdcb4e3a58ad9fef46b6a7a7cd><99f020cdcb4e3a58ad9fef46b6a7a7cd>]
>>
startxref
0
%%EOF

我会将您上传的文件移动到您的 wp-content 中的某个位置,然后尝试该目录。这可能是权限限制,因为您正试图直接从 tmp 目录读取文件。使用 move_uploaded_file 移动它,并尝试使用新位置。