0

ユーザーが詳細を入力してファイルをアップロードできる簡単な連絡先フォームを作成しようとしています。フォームを送信すると、ファイルは連絡先の電子メールに添付され、サーバーのディレクトリにもアップロードされます。.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>                   

      }                      
   }
}

なぜこれが機能しないのか誰にも分かりますか?

4

1 に答える 1