将上传的文件作为附件发送但不保存到服务器
Sending an uploaded file as attachment but not saving to server
我的网站上有一个联系表单,允许用户将文件作为电子邮件附件发送。现在我的推理是,我不需要也不一定希望将每张图片都上传到网站服务器,但是当使用表单输入文件时,我无论如何都会上传。
表单上传文件是有道理的,因为这是它的功能,但我想知道这是否不可避免,或者是否有办法仍然将图像作为附件发送但不将其上传到服务器.
如评论所述:
1.) 尽管可以在发布后自动删除文件,但我使用的电子邮件功能不是这样设置的。因此上传到服务器是不可避免的。或者至少据我所知。
2.) 我可以在发送邮件后从服务器上删除文件。
如果发现最能解决我的问题的解决方案,将会更新。
从这个答案中提取(并花了一些时间为他们找到解决方案)。
旁注:我对从中提取的答案投了赞成票,你知道的。
“我将 $_FILES['attachment']['tmp_name']
分配给了一个临时变量并且它起作用了!
不知道为什么,但这为我解决了。
这是我的代码
// Swiftmail commands ====================================
require_once('./swiftmailer/lib/swift_required.php');
$transport = Swift_SmtpTransport::newInstance('smtp.host.com', 587)
->setUsername('email@host.com')
->setPassword('pass');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject($subject_temp)
->setFrom(array($from_email => $full_name))
->setTo(array('email@host.com' => 'Jack'))
->setBody($message_temp)
->attach(Swift_Attachment::fromPath($file_temp_name)
->setFilename($name_of_file));
$result = $mailer->send($message);
// Swiftmail commands ====================================
其中 $file_temp_name = $_FILES['attachment']['tmp_name'];
和 $name_of_file = basename($_FILES['attachment']['name']);
- 所以反过来(这是我知道可以做的事情),您将使用服务器上临时存储的文件并将其附加到邮件中,一旦成功,邮件就会自动删除 served/processed.
我的网站上有一个联系表单,允许用户将文件作为电子邮件附件发送。现在我的推理是,我不需要也不一定希望将每张图片都上传到网站服务器,但是当使用表单输入文件时,我无论如何都会上传。
表单上传文件是有道理的,因为这是它的功能,但我想知道这是否不可避免,或者是否有办法仍然将图像作为附件发送但不将其上传到服务器.
如评论所述:
1.) 尽管可以在发布后自动删除文件,但我使用的电子邮件功能不是这样设置的。因此上传到服务器是不可避免的。或者至少据我所知。
2.) 我可以在发送邮件后从服务器上删除文件。
如果发现最能解决我的问题的解决方案,将会更新。
从这个答案中提取(并花了一些时间为他们找到解决方案)。
旁注:我对从中提取的答案投了赞成票,你知道的。
“我将 $_FILES['attachment']['tmp_name']
分配给了一个临时变量并且它起作用了!
不知道为什么,但这为我解决了。
这是我的代码
// Swiftmail commands ====================================
require_once('./swiftmailer/lib/swift_required.php');
$transport = Swift_SmtpTransport::newInstance('smtp.host.com', 587)
->setUsername('email@host.com')
->setPassword('pass');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject($subject_temp)
->setFrom(array($from_email => $full_name))
->setTo(array('email@host.com' => 'Jack'))
->setBody($message_temp)
->attach(Swift_Attachment::fromPath($file_temp_name)
->setFilename($name_of_file));
$result = $mailer->send($message);
// Swiftmail commands ====================================
其中 $file_temp_name = $_FILES['attachment']['tmp_name'];
和 $name_of_file = basename($_FILES['attachment']['name']);
- 所以反过来(这是我知道可以做的事情),您将使用服务器上临时存储的文件并将其附加到邮件中,一旦成功,邮件就会自动删除 served/processed.