ユーザーが詳細を入力してファイルをアップロードできる簡単な連絡先フォームを作成しようとしています。フォームを送信すると、ファイルは連絡先の電子メールに添付され、サーバーのディレクトリにもアップロードされます。.NET Web フォームのドキュメントに従っていますが、メールを送信してサーバーに正常にアップロードできますが、メールに添付ファイルがあると失敗し、理由がわかりません!
これが私のコードです。送信後に「エラー1」というメッセージが表示されます。
@{
var fileName = "";
<form method="POST" enctype="multipart/form-data" id="form">
<input type="text" id="name" name="name" />
<input type="email" id="email" name="email" />
<input type="file" name="fileAttachment" />
<input type="submit" value="submit" />
</form>
if(IsPost) {
var fileSavePath = "";
var msg = "";
try{
var uploadedFile = Request.Files[0];
fileName = Path.GetFileName(uploadedFile.FileName);
fileSavePath = Server.MapPath("~/MyDirectory/" + fileName);
if (uploadedFile.ContentLength > 1120000) {
msg = "The maximum file size is 5 MB";
<p>@msg</p>
}else{
uploadedFile.SaveAs(fileSavePath);
var name = Request.Form["name"];
var email = Request.Form["email"];
var fileAttachment = Request["fileAttachment"];
if( !name.IsEmpty() || !email.IsEmpty())
{
string message = string.Format("Name: {0}<br/><br/>Email: {1}"
, name
, email
);
try{
WebMail.SmtpServer = "127.0.0.1";
var filesList = new string [] { fileAttachment };
WebMail.Send(
from: "no-reply@mydomain.com",
to: "me@mydomain.com",
subject: "File attached",
body: message,
filesToAttach: filesList
);
}catch (Exception ex ){
<p>Error 1</p>
}
}
}
}catch(HttpException ex){
msg = "Error 2";
<p>@msg</p>
}
}
}
なぜこれが機能しないのか誰にも分かりますか?