2

特定のアドレスに電子メールを送信できるシンプルだが完全な ASP.NET MVC 4 Web アプリをセットアップしようとしています。SMPT 設定用の web.config ファイルを構成し、コントローラー呼び出しでコードを記述しましたが、エラー メッセージ「The SMTP」が表示されます。ホストが指定されていません」

<system.net>
<mailSettings>
  <smtp deliveryMethod="Network" from="myEmail@hotmail.co.uk">
    <network host="smtp.live.com" port="25" userName="myEmail@hotmail.co.uk" password="myPassword" defaultCredentials="true"/>
  </smtp>
</mailSettings>

コントローラークラスで

var mailMessage = new MailMessage();
mailMessage.To.Add("yourEmail@hotmail.co.uk");
mailMessage.Subject = "testing 2 ";
mailMessage.Body = "Hello Mr. Aderson";
mailMessage.IsBodyHtml = false;

var smptClient = new SmtpClient { EnableSsl = false };

smptClient.Send(mailMessage);

どうもありがとう

4

7 に答える 7

0

このようなことをして

SmtpClient smtp = new  SmtpClient(ConfigurationManager.AppSettings[EFloOnline.Model.Constants.smtp], Convert.ToInt32(ConfigurationManager.AppSettings[EFloOnline.Model.Constants.smtpport]));

if (ConfigurationManager.AppSettings[EFloOnline.Model.Constants.smtpUseCredentials] == "true")
{
    smtp.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings[EFloOnline.Model.Constants.smtpusername], ConfigurationManager.AppSettings[EFloOnline.Model.Constants.smtppassword], ConfigurationManager.AppSettings[EFloOnline.Model.Constants.smtp]);
}
else
{
    smtp.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

    if (SendTo.Count == 0)
    {
        SendTo.Add(ConfigurationManager.AppSettings[EFloOnline.Model.Constants.ToMail]);
    }

    foreach (string recipientemail in SendTo)
    {
        oEmail.To.Add(recipientemail);
        try
        {
            smtp.Send(oEmail);
        }
        catch (Exception)
        {
        }
        oEmail.To.Clear();
    }
}
于 2013-09-24T10:21:00.337 に答える
0

smptClient.Send(mailMessage); がありません。コードの最後に

var mailMessage = new MailMessage();
mailMessage.To.Add("yourEmail@hotmail.co.uk");
mailMessage.From = new MailAddress("myEmail@hotmail.co.uk");
mailMessage.Subject = "testing 2 ";
mailMessage.Body = "Hello Mr. Aderson";
mailMessage.IsBodyHtml = false;
//this what you miss
    smptClient.Send(mailMessage);
//
于 2013-11-06T20:11:09.760 に答える
0

コードと構成は正しいようです。

Web サイトのルート ディレクトリにある web.config に system.net/mailSettings 要素を配置しましたか?

よくある間違いは、そのような設定を Views フォルダーの web.config に入れることです。

ちなみに、このクラスは .NET 4のクラスと同様に をMailMessage実装しています。したがって、両方をブロックで囲む必要があります。IDisposableSmtpClientusing

于 2013-09-24T10:34:44.717 に答える
0

これを行うことについてブログ記事を書きました。 http://www.bgsoftfactory.net/5-steps-to-send-email-with-mvcmailer-from-an-mvc-4-0-application/

MVCMailer を使用して、より簡単な方法を取りました。MVC から電子メールを送信するのは非常に簡単ですが、MVCMailer ではレーザー テンプレートを使用して電子メールの本文をフォーマットすることができますが、それをうまく行うのは少し複雑です。

MVCMailer を使用すると、時間を節約できます。

于 2013-09-24T14:49:12.080 に答える
0
  • smtp.live.com がまだ有効かどうかわからないhttp://windows.microsoft.com/en-ca/windows/outlook/send-receive-from-appにリストされていないようです
  • ポート 25 がブロックされている場合は、ポート 25 がブロックされているかどうかを確認し、ポート 587 を試します (587 の SSL を有効にする必要がある場合があります)。
于 2013-09-24T10:37:01.640 に答える