swiftmailer和电子邮件形式与附件 - 初学者

Try*_*der 14 php swiftmailer

像往常一样,这里是我学到很多东西的地方.我现在有了新的东西需要学习:

我有一个HTML格式:

<tr><td width="16%">File attachment</td><td width="2%">:</td><td><input type="file" name="fileatt" /></td></tr>
Run Code Online (Sandbox Code Playgroud)

和mail.php:

$attachfile=$_POST["fileatt"];
Run Code Online (Sandbox Code Playgroud)

和一个正确的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('emai@emai.com' => 'name'))

   ->setBody($html, 'text/html')
  ;
// Add alternative parts with addPart()
$message->addPart(strip_tags($html), 'text/plain');

// Send the message
$result = $mailer->send($message);
Run Code Online (Sandbox Code Playgroud)

有人可以帮我如何进行即时文件上传吗?提前致谢!!!

And*_*ita 37

有一个简单的方法可以做到这一点,在这里你去:

$message->attach(
Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('myfilename.jpg')
);
Run Code Online (Sandbox Code Playgroud)

这是SwiftMail可以这样做的一种方式,现在只是/ tmp文件,并将上面的内容转换为以下内容:

假设:fileatt是$ _FILE的变量,['tmp_name']实际上是PHP从表单上传创建的tmp文件.

$message->attach(
Swift_Attachment::fromPath($_FILES['fileatt']['tmp_name'])->setFilename($_FILES['fileatt']['name'])
);
Run Code Online (Sandbox Code Playgroud)

有关SwiftMail附件的更多信息,请参阅此文档页面

关于$ _FILES的更多信息可以在w3schools找到,尽管我不喜欢w3schools,这个页面是可靠的.


Ari*_*ris 5

另一种方法是,只使用一个变量作为路径和文件名:

$message->attach(Swift_Attachment::fromPath('full-path-with-attachment-name'));
Run Code Online (Sandbox Code Playgroud)