2016-04-24 32 views
0

Ich möchte Mail an Admin senden nach dem Kunden validate commande, aber wenn Sie auf die Schaltfläche Valider ich bekomme diesen Fehler: Mailbox nicht verfügbar Briefe. Die Serverantwort war: 5.7.3 Angeforderte Aktion abgebrochen; Benutzer nicht authentifiziert Ich habe keine Lösung im Internet gefunden.Senden Sie EMail mit asp.net mvc

[HttpPost] 
    public async Task<ActionResult> Index2(LigneCommandeT LigneCommandeT , string submit) 
    { 
     switch (submit) 
     { 
      case "Ajouter" : 
     context.LigneCde.Add(LigneCommandeT); 
     context.SaveChanges(); 
     return RedirectToAction("Index2"); 
      break; 
      case "Valider" : 
      // var message = EMailTemplate("Welcome"); 
      await MessageServices.SendEmailAsync("Namegmail.com", "Welcome!", "message"); 

      return RedirectToAction("Index3"); 
      break; 
      default : 
      return RedirectToAction("Index2"); 
      break; 
     } 
    } 

Dies ist die Sendmail-Methode:

public async static Task SendEmailAsync(string email , string subject ,string message) 
    { 
     try 
     { 
      var _email="[email protected]"; // sender's email 
      var _epass = ConfigurationManager.AppSettings["EmailPassword"]; // get our password from web.config 
      var _dispName = "Sabrine"; 
      MailMessage MyMessage = new MailMessage(); 
      MyMessage.To.Add(email); 
      MyMessage.From = new MailAddress(_email,_dispName); 
      MyMessage.Subject = subject ; 
      MyMessage.Body = message ; 
      MyMessage.IsBodyHtml = true; 

      using(SmtpClient smtp = new SmtpClient()) 
      { 
       smtp.EnableSsl =true ; 
       smtp.Host = "smtp.live.com"; 
       smtp.Port = 587 ; 
       smtp.UseDefaultCredentials = false ; 
       smtp.Credentials = new NetworkCredential(_email,_epass); 
       smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
       smtp.SendCompleted += (s,e) => {smtp.Dispose();} ; 
       await smtp.SendMailAsync(MyMessage); 


      } 
     } 
     catch(Exception ex) 
     { 
      throw ex ; 
     } 

Dies ist ein Teil von Web.config ist:

<appSettings> 
<add key="webpages:Version" value="3.0.0.0" /> 
<add key="webpages:Enabled" value="false" /> 
<add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
<add key="EmailPassword" value="" /> 
    </appSettings> 

<system.net> 
    <mailSettings> 
    <smtp deliveryMethod="Network"> 
     <network enableSsl="true" host="smtp.live.com" port="587" defaultCredentials="false" userName="[email protected]" password=""/> 
    </smtp> 
    </mailSettings> 

Danke,

+0

es Sie kein Passwort in der Config gesetzt haben – jamiedanq

+0

ich mein Passwort gesetzt, und ich änderte „smtp.live.com“ auf „SMTP- .gmail.com "und ich habe diesen Fehler erhalten: Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert. Die Serverantwort lautete: 5.5.1 Authentifizierung erforderlich. – Sarra

Antwort

0

Die folgende Zeile im Code wird keine password bekommen oder nicht bekommen password als leer string:

var _epass = ConfigurationManager.AppSettings["EmailPassword"]; 

Als Ergebnis dieser Ihre config Einstellung:

<add key="EmailPassword" value="" /> 

Wenn Sie klar schauen, ist die value eine leere string. Sie haben es mit der erforderlichen Password wie im folgenden Beispiel zu ersetzen:

<add key="EmailPassword" value="YourPassword" /> 
+0

Ich stellte mein Kennwort ein und Ich habe "smtp.live.com" in "smtp.gmail.com" geändert und habe folgende Fehlermeldung erhalten: Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert. Die Serverantwort lautete: 5.5.1 Authentifizierung erforderlich. – Sarra

+0

@ Sarra, wenn Sie nur testen, ob es funktioniert Ich schlage vor, Sie behalten die 'smtp.live.com', da es funktioniert – jamiedanq

+0

Vielen Dank für Ihre Zeit und Ihre Hilfe, behob ich das Problem, ich deaktivieren Sicherheit auf meinem Konto gmail. es funktioniert: D :) – Sarra

0

bearbeiten Sie bitte Ihren Code wie folgt;

 SmtpClient SmtpServer = new SmtpClient("smtp.live.com"); 
     var mail = new MailMessage(); 
     mail.From = new MailAddress("[email protected]"); 
     mail.To.Add("akin.********@gmail.com"); 
     mail.Subject = "Your Sub"; 
     mail.IsBodyHtml = true; 
     string htmlBody; 
     htmlBody = "HTML code"; 
     mail.Body = htmlBody; 
     SmtpServer.Port = 587; 

     SmtpServer.UseDefaultCredentials = false; 

     SmtpServer.Credentials = new System.Net.NetworkCredential("****abdull*h**[email protected]", "*****"); 
     SmtpServer.EnableSsl = true; 

     SmtpServer.Send(mail); 

Quellen-Link: Send email via Hotmail to gmail

+0

Das ist Code funktioniert nicht für mich. T bekomme den gleichen Fehler :(: '. – Sarra

+0

Hmm, ich verstehe dein Problem. Ich versuche meine Gmail Name Outlook Kontoinformationen, bekomme ich Ihren Fehler, und versuchen Sie Hotmail Kontoinformationen und E-Mail-Versand erfolgreich. Bitte ändern Sie von E-Mail-Adresse verschiedene Absender-E-Mail-Adresse und versuchen. Beispiel: NetworkCretial ("[email protected]") Von Mail-Adresse kann nicht per [email protected] Bitte ändern und versuchen. Ich bearbeite meine Antworten, überprüfen Sie bitte –

+0

Es funktionierte mit smtp.gmail.com, ich reparierte das Problem, indem ich ein anderes Konto mit weniger Sicherheit verwendete, danke für Ihre Hilfe: D – Sarra

Verwandte Themen