2017-08-21 13 views
2

私はASP.NET MVCで初心者です。ウェブアプリケーションでsmtp serverajaxを使用して電子メールを取得しようとしています。ユーザーがボタンをクリックすると、私のコードは、希望のIDに送信される電子メールを生成します。私は正常にすべての値をデバッグするコードを取得しています。しかし、私はそこにメールを受け取ることができません。しかし、私はまた成功ブラウザからのマッサージを取得しています。しかし、私の望ましいアカウントには、そこに電子メールがありません。asp.net mvcでsmtpとajaxでメールを送信

Index.cshtml

<div> 
    <a class="btn btn-primary btn-block btn-lg" onclick="SendEmail()" >Click to send Email</a> 
</div> 

<script> 
    var SendEmail = function() { 
     $.ajax({ 
      type: "Post", 
      url: "/Feedbacks/SendMailToUser", 
      success: function (data) { 
       alert("Success"); 
      } 
     }) 
    } 
</script> 

FeedbacksController.cs

public JsonResult SendMailToUser() { 
      bool result = false; 
      result = SendEmail("[email protected]", "Test", "<p>Hi abc,<br/>This message is for testing purpose. So don't be upset.<br/>Kind Regards,<br/>abc</p>"); 
      return Json(result, JsonRequestBehavior.AllowGet); 
     } 
     public bool SendEmail(string toEmail, string subject, string emailBody) { 
      try 
      { 
       string senderEmail = System.Configuration.ConfigurationManager.AppSettings["SenderEmail"].ToString(); 
       string senderPassword = System.Configuration.ConfigurationManager.AppSettings["SenderPassword"].ToString(); 

       SmtpClient client = new SmtpClient("smtp.gmail.com", 578); 
       client.EnableSsl = true; 
       client.Timeout = 100000; 
       client.DeliveryMethod = SmtpDeliveryMethod.Network; 
       client.UseDefaultCredentials = false; 
       client.Credentials = new NetworkCredential(senderEmail, senderPassword); 

       MailMessage mailMessage = new MailMessage(senderEmail, toEmail, subject, emailBody); 
       mailMessage.IsBodyHtml = true; 
       mailMessage.BodyEncoding = UTF8Encoding.UTF8; 

       client.Send(mailMessage); 

       return true; 
      } 
      catch (Exception ex) { 
       return false; 
      } 

     } 
    } 

のWeb.config

<appSettings> 
    <add key="SenderEmail" value="[email protected]" /> 
    <add key="SenderPassword" value="********" /> 
</appSettings> 
+0

ajaxコールバックの 'data'の値は何ですか?それは真実か偽ですか? falseの場合は、コードのどの部分が実行されているかが分かります。 – Shyju

+0

ポート番号を変更するだけでなく、enableSSLをfalseに変更する –

+0

安全でないメールを送信する場合にのみ、@UbiquitousDevelopers: – ADyson

答えて

1

は、使用してみてくださいSmtpClientオブジェクト初期化なし:

SmtpClient client = new SmtpClient(); 
1

私は間違ったポート番号を使用していたので私の問題を解決しました。私は

SmtpClient client = new SmtpClient("smtp.gmail.com", 587); 

代わりの

SmtpClient client = new SmtpClient("smtp.gmail.com", 578); 

を使用するとき、私はそこに電子メールを得ました。

関連する問題