Как создать CSV на лету и отправить в виде вложения с помощью wp_mail?

Я пытаюсь создать файл CSV из представления формы и отправить этот файл автоматически по электронной почте конкретному пользователю. Само письмо отправляет штраф, но я не могу получить приложение, чтобы пройти. Возможно ли создать вложение без предварительного сохранения файла на сервере?

function create_csv() { $fd = fopen('php://temp/', 'w'); if($fd === FALSE) { die('Failed to open temporary file'); } $records = array( array('dummy', 'data', 'found', 'here') ); fputcsv($fd, $headers); foreach($records as $record) { fputcsv($fd, $record); } rewind($fd); $csv = stream_get_contents($fd); fclose($fd); return $csv; } $to = $email; $subject = 'Subject'; $message = 'Message'; $headers = 'From: ' . $other_email; $attachment = create_csv(); $sent = wp_mail($to, $subject, $message, $headers, $attachment); 

Solutions Collecting From Web of "Как создать CSV на лету и отправить в виде вложения с помощью wp_mail?"

Это связано с тем, что wp_mail ожидает, что вложение будет именем файла (путь к файлу), который он может подключить и отправить. Вы поставляете строку, содержащую содержимое файла:

 function create_csv() { $filepath = '/path/to/the/file.csv'; $fd = fopen($filepath, 'w'); if($fd === FALSE) { die('Failed to open temporary file'); } $records = array( array('dummy', 'data', 'found', 'here') ); fputcsv($fd, $headers); foreach($records as $record) { fputcsv($fd, $record); } rewind($fd); fclose($fd); return $filepath; } 

решит вашу проблему. См. http://codex.wordpress.org/Function_Reference/wp_mail