Я следующий простой вид, что Мента отправить несколько файлов по электронной почте:Как отправить несколько вложений по электронной почте
<form method="post" enctype="multipart/form-data">
<input id="upload-file" class="upload-file" type="file" name="my_file[]" multiple>
<input type="submit" value="Send">
</form>
Я использую следующий код PHP, чтобы сделать фактический отправка:
if (isset($_FILES['my_file'])) {
$to = '[email protected]';
$subject = 'Files moar files';
$message = 'Message Body';
$headers = 'Some random email header';
$attachments = array();
$myFile = $_FILES['my_file'];
$fileCount = count($myFile["name"]);
for ($i = 0; $i < $fileCount; $i++) {
$attachments[$i] = $_FILES['my_file']['tmp_name'][$i];
}
wp_mail($to, $subject, $message, $headers, $attachments);
}
Я использую метод wp_mail(), потому что это на веб-сайте Wordpress (это то же самое, что и функция php mail()). Моя проблема в том, что я получаю письмо с вложениями, но имя файла перепутано, и нет расширения, поэтому его трудно открыть. Что я делаю неправильно здесь, и как я могу это исправить?
в соответствии с кодом x, массив вложений должен быть просто массивом имен файлов: https://developer.wordpress.org/reference/functions/wp_mail/ –
'Имена файлов в атрибуте $ attachments должны быть fileystem paths.' Если вы говорите об этом - я знаю. Я использую tmp_name для получения пути к файловой системе, и он работает, потому что я получаю вложения, и это то, что я отправляю. Но имя файла - это имя, указанное как временный файл, например: .phpG0ChLP. Это имя не имеет расширения, поэтому вы не можете его открыть, если не знаете, что это такое (jpg, pdf и т. Д.). –
Я думаю, вы должны сделать дамп var. Я уверен, что вы хотели сделать '$ attachments [$ i] = $ _FILES ['my_file'] [$ i] ['tmp_name'];' –