2017-08-21 2 views
2

Je suis débutant en ASP.NET MVC et en essayant d'obtenir des e-mails en utilisant smtp server et ajax dans webApplication. Lorsque l'utilisateur clique sur le bouton mon code va générer l'email qui sera envoyé à l'adresse désirée ID. Je réussis à obtenir toutes mes valeurs en déboguant le code. Mais, je ne suis pas en mesure de recevoir l'email là-bas. Bien, je reçois également succès massage du navigateur. Mais aucun email n'est là, dans mon compte désirable.envoyer un email par smtp et ajax dans asp.net mvc

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

Quelle est la valeur de 'data' dans votre rappel ajax? Est-ce vrai ou faux ? Si c'est faux, vous savez quelle partie de votre code est en cours d'exécution. – Shyju

+0

Modifier votre numéro de port ainsi que changer enableSSL à false –

+0

@UbiquitousDevelopers seulement si vous voulez envoyer un courriel non sécurisé :-) – ADyson

Répondre

1

Essayez d'utiliser SmtpClient sans objet initialiseur:

SmtpClient client = new SmtpClient(); 
1

J'ai résolu mon problème parce que j'utilisais le numéro de port incorrect. Quand j'utilise

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

au lieu de

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

je suis arrivé là-bas email.