和往常一样,这里是我学到很多东西的地方。现在,我有新的东西要学习:
我有一个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代码以发送电子邮件;
我已经在Google上搜索过,并且发现了许多示例,这些示例如何发送带有存储在网站上的文件的附件,但我想即时进行。因此,当您提交按钮时,它会将其发送给其他人,而不是上传文件。
// 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);
有人可以帮我如何进行动态文件上传吗?提前致谢!!!
最佳答案
有一种简单的方法可以执行此操作,在这里您可以进行以下操作:
$message->attach(
Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('myfilename.jpg')
);
这是SwiftMail可以做到这一点的一种方法,现在只需/tmp文件,然后将以上内容转换为以下内容:
假设:fileatt是$ _FILE的变量,['tmp_name']实际上是PHP从表单上传中创建的tmp文件。
$message->attach(
Swift_Attachment::fromPath($_FILES['fileatt']['tmp_name'])->setFilename($_FILES['fileatt']['name'])
);
有关SwiftMail附件的更多信息,可以在此docs页面上找到
尽管我不喜欢w3schools,但是在w3schools上可以在$ 3FILES上找到有关$ _FILES的更多信息,但是此页面是可靠的。
关于php - swiftmailer和带有附件的电子邮件表单-初学者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11319878/