Swiftmailer и электронная почта с приложением - новичок
Как всегда здесь место, где я многому научился. И у меня теперь есть чему поучиться:
У меня есть html-форма:
<tr><td width="16%">File attachment</td><td width="2%">:</td><td><input type="file" name="fileatt" /></td></tr>
и mail.php:
$attachfile=$_POST["fileatt"];
и правильный код swiftmailer для отправки электронной почты;
У меня есть googled, и я нашел много примеров, как отправить вложение с файлом, хранящимся на веб-сайте, но я хотел бы сделать это на лету. Поэтому, когда вы отправляете кнопку, она отправляет ее людям, а не загружает файл.
// Create the Transport
$transport = Swift_SmtpTransport::newInstance('mail.server.co.uk', 25)
->setUsername('user')
->setPassword('pass')
;
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
// Create a message
$message = Swift_Message::newInstance($subject)
->setFrom(array('[email protected]' => 'name'))
->setBody($html, 'text/html')
;
// Add alternative parts with addPart()
$message->addPart(strip_tags($html), 'text/plain');
// Send the message
$result = $mailer->send($message);
Может ли кто-нибудь помочь мне, как сделать загрузку файлов на лету, пожалуйста? Спасибо заранее.
Ответы
Ответ 1
Вот простой способ сделать это, вот вы:
$message->attach(
Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('myfilename.jpg')
);
Этот способ SwiftMail может сделать это, теперь просто файл /tmp и переверните приведенное выше:
Предполагая: fileatt является переменной для $_FILE, ['tmp_name'] фактически является файлом tmp, который создает PHP из загрузки формы.
$message->attach(
Swift_Attachment::fromPath($_FILES['fileatt']['tmp_name'])->setFilename($_FILES['fileatt']['name'])
);
Более подробную информацию о приложениях SwiftMail можно найти на этой странице docs
Более подробную информацию о $_FILES можно найти здесь, в w3schools, несмотря на то что мне не нравится w3schools, эта страница прочная.
Ответ 2
Другой способ сделать это, используя только одну переменную для пути и имени файла:
$message->attach(Swift_Attachment::fromPath('full-path-with-attachment-name'));