2017-10-08 5 views
1

J'utilise MVC ASP.NET Core 1.1.2 sur une application Web. J'essaie de créer le formulaire de contact en utilisant MailKit 1.18.1.1. J'envoie les formulaires de contact par email (gmail). Quand je construis la page Web localement, tout fonctionne comme prévu. La première fois que j'ai lancé le programme localement, cela m'a donné la même erreur mais j'ai activé les paramètres de sécurité de mon adresse mail et ça a commencé à fonctionner. Mais quand je déploie sur le web, il me donne une erreur comme ça, même si je mets les paramètres de sécurité pour permettre aux applications moins sécurisées:AuthenticationException: AuthenticationMechanismTooWeak: 5.7.14

AuthenticationException Error Page

Voici ma méthode SendMail dans la maison du contrôleur:

public IActionResult SendMail(string name, string phone, string email, string msg) 
     { 
      var message = new MimeMessage(); 
      message.From.Add(new MailboxAddress ("[email protected]")); 
      message.To.Add(new MailboxAddress("[email protected]")); 
      message.Subject = name; 
      message.Body = new TextPart("html") 
      { 
       Text = "Kimden: " + name + "<br>" + "Mail adresi: " + email + "<br>" + 
       "Mesaj: " + msg + "<br>" + "Telefon: " + phone 
      }; 

      using (var client = new SmtpClient()) 
      { 
       client.Connect("smtp.gmail.com", 587); 
       client.Authenticate("[email protected]", "thepassword(I am sure it's correct)"); 
       client.Send(message); 
       client.Disconnect(false); 
      } 

      return View("Contact"); 
     } 

Voici mon code Contact.cshtml pour la forme:

@using (Html.BeginForm("SendMail", "Home")) 
       { 
      <div class="contactForm"> 
       <form action="" method="POST" role="form" class="form"> 
       <div class="form-group"> 
        <input name ="name" type="text" class="form-control" id="" placeholder="Adın"> 
       </div> 
       <div class="form-group"> 
        <input name ="email" type="email" class="form-control" id="" placeholder="Mail Adresin"> 
       </div> 
       <div class="form-group"> 
        <input name="phone" type="text" class="form-control" id="" placeholder="Telefonun"> 
       </div> 
       <div class="form-group"> 
        <textarea name="msg" class="form-control" id="" placeholder="Mesajın"></textarea> 
       </div> 
       <button type="submit" class="btn buttonCustomPrimary">Mesaj gönder</button> 
       </form> 
      </div> 
       } 

Répondre

0

Avez-vous essayé en suivant les instructions données dans le message d'erreur? Il dit que vous devez d'abord vous connecter via un navigateur Web. Ceci est une fonctionnalité de sécurité de GMail.

+0

Mais je vais publier cette application web au public. Est-ce que tout le monde qui essaie d'envoyer un message doit être connecté à mon adresse e-mail avec cette logique? –

+0

Non, seulement votre serveur Web devra se connecter à votre compte Gmail. – jstedfast

+0

Comment puis-je me connecter à mon compte sur mon serveur Web? J'utilise un service d'hébergement tiers et j'utilise gsuite pour mes e-mails. –