使用Wordpress中的函数wp_mail打破附加文件

时间:2015-02-12 12:36:21

标签: php wordpress

在我本地使用带有附加文件的wp_mail()时,它可以正常工作,但是当我在prod上时,它没有。

我在电子邮件中收到的文件是.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

1 个答案:

答案 0 :(得分:1)

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