2016-05-28 11 views
1

これは問題ではないかもしれませんが、ファイルのアップロードとメール送信には新しいです。私と一緒に裸にしてください...アップロードされたファイルを添付ファイルとして送信しましたが、サーバーに保存しません。

私はあなたのメールに添付ファイルとしてファイルを送信することができます私のウェブサイト上の連絡フォームがあります。今私の推論では、私は必ずしもすべての画像をウェブサイトサーバーにアップロードする必要はありませんが、フォーム入力ファイルを使用する場合はアップロードされます。

フォームは機能としてファイルをアップロードするのは理にかなっていますが、これが不可避かどうか、または画像を添付ファイルとして送信してもサーバーにアップロードしない方法があるかどうかを知りたいと思います。

よろしくコメントで述べたように

+0

確かに方法があります。最も簡単な方法はphpmailerですhttps://github.com/PHPMailer/PHPMailer - あなたの他の質問/回答http://stackoverflow.com/q/37444737/を見て、あなたはswiftmailerを使っています。だから今質問は不明です。 –

+0

私はswiftmailerを使用していますが、これを使用して同じ目標を達成する方法はありますか? @ Fred-ii- –

+0

もちろん、機能をアップロードしているコードは使用しないでください。添付してください。サーバーに保存する必要はありません。 –

答えて

2

https://stackoverflow.com/a/23849972/(そして解決に時間を費やしています)

サイドノート:私はそれが引き出された答えをupvoted、ちょうどあなたが知っている。

// Swiftmail commands ==================================== 
require_once('./swiftmailer/lib/swift_required.php'); 

$transport = Swift_SmtpTransport::newInstance('smtp.host.com', 587) 
->setUsername('[email protected]') 
->setPassword('pass'); 

$mailer = Swift_Mailer::newInstance($transport); 

$message = Swift_Message::newInstance() 
->setSubject($subject_temp) 

->setFrom(array($from_email => $full_name)) 

->setTo(array('[email protected]' => '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']);

    "私は一時変数に $_FILES['attachment']['tmp_name']を割り当てられ、それが働いた! いけない理由を知っているが、それは私のためにそれを解決しました。 ここに私のコードです"
  • これは順番に(そして私ができることが分かっていたことですが)、一時的に保存されたファイルをサーバー上で使用してメールに添付して、正常に処理/処理されると自動的に削除されます。
0

1)自動的に掲示した後、削除されたファイルを持つことが可能ですが、私が使用していた電子メール機能は、そのように設定されていません。したがって、サーバーへのアップロードは避けられません。少なくとも私の知る限り。

2.)メールを送信した後、サーバーからファイルを削除できます。

私の問題を最も良く解決する解決策が発見された場合に更新されます。

+0

必ずしも異なるとは限りません。 –

+0

@ Fred-ii- –

+0

を詳しく説明します。既に私はコメントしました。 - ) –

関連する問題