2011-06-21 14 views
0

私はc#でメールを送信する際に問題があります。メールは送信されず、障害が発生しても例外は発生しません。SmtpMail.Send()が機能しません。

using System.Web.Util; 

public static void SendEmail(string _FromEmail, string _ToEmail, string _Subject, string _EmailBody) 
    { 

     // setup email header . 
     SmtpMail.SmtpServer = "localhost"; 
     MailMessage _MailMessage = new MailMessage(); 

     _MailMessage.From = _FromEmail; 
     _MailMessage.To = _ToEmail; 
     _MailMessage.Subject = _Subject; 
     _MailMessage.Body = _EmailBody; 

     try 
     { 
      SmtpMail.Send(_MailMessage); 
     } 
     catch (Exception ex) 
     { 

      throw new ApplicationException("error has occured: " + ex.Message); 
     } 

    } 

助けてください!

+1

ローカルのsmtpサーバーがメールを正常に送信していますか? –

+0

ローカルマシンでsmtpサーバーを実行していますか? –

+0

電子メールを送信するローカルSMTPサーバーは設定されていますか?それを使用しているスマートホストは、そこから電子メールを受け取りますか? – Oded

答えて

1

IISのMailrootディレクトリ(おそらくC:\ InetPub \ Mailrootにあります)のフォルダを確認してください。おそらくBadmailまたはQueueディレクトリにメールがドロップされる可能性があります。

+0

@ Roy:私はそれをチェックします:C:\ Inetpub \ mailroot \ Queue.itこのようなメールでいっぱいです(NTFS_6c2eb4dc01cc301d00000006.EML) –

+0

あなたのIIS Smtpサービスを使用して、Exchangeサーバーなどの適切なSMTPサーバーを使用します。 IIS SMTPサービスは単なるリレーに過ぎません。とにかく、あなたはあなたの答えを見つけました:-) –

+0

私はこの点 "IIS SMTPサービスは、適切なSMTPサーバーを使用する"を取得しないでください:S:S:S:S –

0

C:\ InetPub \ Mailroot \ queueフォルダを参照してください。 1 >> SMTPを停止 2キューフォルダからC:\ inetpub \ mailroot \ Pickupフォルダにメールを移動し、SMTPサーバを起動して数秒待ってください。

メールがキューフォルダに滞留している場合は、smtpログを有効にして詳細を確認する必要があります。 smtpロギングを有効にする方法については、このリンクを参照してください。

http://www.msexchange.org/tutorials/Logging_the_SMTP_Service.html

関連する問題