it-swarm.com.de

Die Antwort des Servers war: 5.7.0 Zuerst muss ein STARTTLS-Befehl ausgegeben werden. i16sm1806350pag.18 - gsmtp

Ich versuche, E-Mails mit Google Mail zu senden, und ich erhalte eine Ausnahme, die The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. i16sm1806350pag.18 - gsmtp lautet.

code, den ich zum Versenden von Mails geschrieben habe, ist 

            MailMessage mail = new MailMessage(); 
            mail.To.Add(txtEmail.Text.Trim()); 
            mail.To.Add("[email protected]");
            mail.From = new MailAddress("[email protected]");
            mail.Subject = "Confirmation of Registration on Job Junction.";
            string Body = "Hi, this mail is to test sending mail using Gmail in ASP.NET";
            mail.Body = Body;
            mail.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
           // smtp.Host = "smtp.gmail.com"; //Or Your SMTP Server Address
            smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "password");
           // smtp.Port = 587;
            //Or your Smtp Email ID and Password
            smtp.UseDefaultCredentials = false;
          // smtp.EnableSsl = true;
            smtp.Send(mail);

Bitte sagen Sie mir Lösungen, für diese Ausnahmen bekomme ich keine Lösungen.

35
Ankur Gupta

Für Google Mail müssen Sie eine sichere Verbindung verwenden. Dies kann in Ihrer web.config folgendermaßen eingestellt werden:

<network Host="smtp.gmail.com" enableSsl="true" ... />

ODER 

Das SSL sollte auch auf dem Webserver aktiviert sein. __ Siehe folgenden Link 

SSL unter IIS 7.0 aktivieren

35
Microsoft DN

Schritt (1): smtp.EnableSsl = true;

wenn nicht genug:

Schritt (2): " Zugriff für weniger sichere Apps" muss für das von NetworkCredential mit Google-Einstellungsseite :

26
musmahn

Dieses Thema hat mich auch über Nacht verfolgt. So beheben Sie es:

  • Stellen Sie Host auf: smtp.gmail.com
  • Stellen Sie den Port auf: 587

Dies ist der TLS-Port. Ich hatte alle anderen SMTP-Ports ohne Erfolg verwendet. Wenn Sie enableSsl = true so einstellen:

Dim SMTP As New SmtpClient(Host)
SMTP.EnableSsl = True

Schneiden Sie die Felder für Benutzername und Kennwort ab (eine gute Möglichkeit, Fehler zu vermeiden, wenn der Benutzer bei der Registrierung die E-Mail-Adresse und das Kennwort wie bei meiner Registrierung eingibt):

SMTP.Credentials = New System.Net.NetworkCredential(EmailFrom.Trim(), EmailFromPassword.Trim())

Wenn Sie den TLS-Port verwenden, wird Ihr SMTP als SMTPS behandelt, sodass Sie sich authentifizieren können. Ich erhielt umgehend eine Warnung von Google, dass meine E-Mail eine App blockiert, die Sicherheitsrisiken aufweist oder veraltet ist. Ich fuhr fort mit "Weniger sichere Apps aktivieren". Dann habe ich die Informationen zu meiner Telefonnummer aktualisiert und Google hat mir einen Bestätigungscode per Text gesendet. Ich habe es eingegeben und voila!

Ich habe die Anwendung erneut ausgeführt und war erfolgreich. Ich weiß, dass dieser Thread alt ist, aber ich habe das Netz durchforstet und alle Ausnahmen gelesen und nach jeder Zeile MsgBoxes hinzugefügt, um zu sehen, was schief lief. Hier ist mein Arbeitscode für die Lesbarkeit modifiziert, da alle meine Variablen aus der MySQL-Datenbank stammen:

Try
    Dim MySubject As String = "Email Subject Line"
    Dim MyMessageBody As String = "This is the email body."
    Dim RecipientEmail As String = "[email protected]"
    Dim SenderEmail As String = "[email protected]"
    Dim SenderDisplayName As String = "FirstName LastName"
    Dim SenderEmailPassword As String = "SenderPassword4Gmail"

    Dim Host = "smtp.gmail.com"
    Dim PORT = "587" 'TLS Port

    Dim mail As New MailMessage
    mail.Subject = MySubject
    mail.Body = MyMessageBody
    mail.To.Add(RecipientEmail) 
    mail.From = New MailAddress(SenderEmail, SenderDisplayName)

    Dim SMTP As New SmtpClient(Host)
    SMTP.EnableSsl = True
    SMTP.Credentials = New System.Net.NetworkCredential(SenderEmail.Trim(), SenderEmailPassword.Trim())
    SMTP.DeliveryMethod = SmtpDeliveryMethod.Network 
    SMTP.Port = PORT
    SMTP.Send(mail)
    MsgBox("Sent Message To : " & RecipientEmail, MsgBoxStyle.Information, "Sent!")
Catch ex As Exception
    MsgBox(ex.ToString)
End Try

Ich hoffe, dass dieser Code der OP hilft, aber auch jeder, der wie ich spät zu der Party kommt. Genießen.

6
DavidG

SENDEN-Tastenlogik

        string fromaddr = "[email protected]";
        string toaddr = TextBox1.Text;//TO ADDRESS HERE
        string password = "YOUR PASSWROD";


        MailMessage msg = new MailMessage();
        msg.Subject = "Username &password";
        msg.From = new MailAddress(fromaddr);
        msg.Body = "Message BODY";
        msg.To.Add(new MailAddress(TextBox1.Text));
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.Port = 587;
        smtp.UseDefaultCredentials = false;
        smtp.EnableSsl = true;
        NetworkCredential nc = new NetworkCredential(fromaddr,password);
        smtp.Credentials = nc;
        smtp.Send(msg);

-> Dieser Code funktioniert zu 100%. Wenn sich in Ihrem System ein Virenschutzprogramm befindet, das die Virenschutzsoftware-Firewall einschränkt. Beschränken Sie das Senden von E-Mails von unserem System. Deaktivieren Sie daher Ihr Virenschutz- und Firewall-System. Nach diesem Code diesen Code ausführen .... In diesem Code wird das TextBox1.Text-Steuerelement für TOaddress verwendet

4
khanna

Wenn Sie den Fehler "Unbekanntes Attribut 'enableSsl'" erhalten, wenn Sie den Anweisungen zum Hinzufügen dieses Parameters zu Ihrer web.config folgen. Ich habe festgestellt, dass ich den Fehler umgehen konnte, indem ich ihn stattdessen in meinem Code in diesem Format hinzufügte:

SmtpClient smtp = new SmtpClient();
smtp.EnableSsl = true;

try
{
    smtp.Send(mm);
}
catch (Exception ex)
{
    MsgBox("Message not emailed: " + ex.ToString());
}

Dies ist der Abschnitt system.net meiner web.config:

<system.net>
  <mailSettings>
    <smtp from="<from_email>">
      <network Host="smtp.gmail.com"
       port="587"
       userName="<your_email>"
       password="<your_app_password>" />
    </smtp>
  </mailSettings>
</system.net>
2
R Porter

Wenn Sie (wie ich) alle Parameter wie Port, Benutzername und Kennwort durch ein System übergeben und Sie den Code nicht ändern dürfen, können Sie dies in der web.config einfach ändern:

  <system.net>
    <mailSettings>
      <smtp>
        <network enableSsl="true"/>
      </smtp>
    </mailSettings>
   </system.net>
2
Ernest

" https://www.google.com/settings/security/lesssecureapps " Verwenden Sie diesen Link, nachdem Sie sich in Ihrem Google Mail-Konto angemeldet haben, und klicken Sie auf "Aktivieren". Wenn Sie dann Ihre Anwendung ausführen, funktioniert sie sicher.

2
k3ka

Ich habe auch den gleichen Fehler mit dem Code erhalten:

 MailMessage mail = new MailMessage(); 
        mail.To.Add(txtEmail.Text.Trim()); 
        mail.To.Add("[email protected]");
        mail.From = new MailAddress("[email protected]");
        mail.Subject = "Confirmation of Registration on Job Junction.";
        string Body = "Hi, this mail is to test sending mail using Gmail in ASP.NET";
        mail.Body = Body;
        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
       // smtp.Host = "smtp.gmail.com"; //Or Your SMTP Server Address
        smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "password");
       // smtp.Port = 587;
        //Or your Smtp Email ID and Password
        smtp.UseDefaultCredentials = false;
      // smtp.EnableSsl = true;
        smtp.Send(mail);

Das Verschieben von 2 Zeilen nach oben hat das Problem behoben:

        MailMessage mail = new MailMessage(); 
        mail.To.Add(txtEmail.Text.Trim()); 
        mail.To.Add("[email protected]");
        mail.From = new MailAddress("[email protected]");
        mail.Subject = "Confirmation of Registration on Job Junction.";
        string Body = "Hi, this mail is to test sending mail using Gmail in ASP.NET";
        mail.Body = Body;
        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
       // smtp.Host = "smtp.gmail.com"; //Or Your SMTP Server Address
        smtp.UseDefaultCredentials = false;
      smtp.EnableSsl = true;
        smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "password");
       // smtp.Port = 587;
        //Or your Smtp Email ID and Password
        smtp.Send(mail);
0
user1400290
**this is first  part of program**
<head runat="server">
    <title></title>
    <style>
        .style4
        {
            margin-left:90px;
        }
        .style3{
            margin-left:130px;
        }
        .style2{
            color:white;
            margin-left:100px;
            height:400px;
            width:450px;
            text-align:left;
                }
        .style1{
            height:450px;
            width:550px;
            margin-left:450px;
            margin-top:100px;
            margin-right:500px;
            background-color:rgba(0,0,0,0.9);
        }
        body{
            margin:0;
            padding:0;
        }
        body{
            background-image:url("/stock/50.jpg");
            background-size:cover;
            background-repeat:no-repeat;
            }   
       </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>

            <div class="style1">
                <table class="style2">
                   <tr>
                       <td colspan="2"><h1 class="style4">Sending Email</h1></td>
                   </tr>
                   <tr>
                       <td>To</td>
                       <td><asp:TextBox ID="txtto" runat="server" Height="20px" Width="250px" placeholder="[email protected]"></asp:TextBox><asp:RequiredFieldValidator ForeColor="Red" runat="server" ErrorMessage="Required" ControlToValidate="txtto" Display="Dynamic"></asp:RequiredFieldValidator><asp:RegularExpressionValidator runat="server" ForeColor="Red" ControlToValidate="txtto" Display="Dynamic" ErrorMessage="Invalid Email_ID" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator> </td>
                   </tr>
                     <tr>
                       <td>From</td>
                       <td><asp:TextBox ID="txtfrom" runat="server" Height="20px" Width="250px" placeholder="[email protected]"></asp:TextBox> <asp:RequiredFieldValidator ForeColor="Red" Display="Dynamic" runat="server" ErrorMessage="Required" ControlToValidate="txtfrom"></asp:RequiredFieldValidator>
                           <asp:RegularExpressionValidator Display="Dynamic" runat="server" ErrorMessage="Invalid Email-ID" ControlToValidate="txtfrom" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
                         </td>
                   </tr>
                     <tr>
                       <td>Subject</td>
                       <td><asp:TextBox ID="txtsubject" runat="server" Height="20px" Width="250px" placeholder="Demonstration on Youtube"></asp:TextBox><asp:RequiredFieldValidator ForeColor="Red" runat="server" ErrorMessage="Required" ControlToValidate="txtsubject"></asp:RequiredFieldValidator> </td>
                   </tr>
                     <tr>
                       <td>Body</td>
                       <td><asp:TextBox ID="txtbody" runat="server" Width="250px" TextMode="MultiLine" Rows="5" placeholder="This is the body text"></asp:TextBox><asp:RequiredFieldValidator ForeColor="Red" runat="server" ErrorMessage="Required" ControlToValidate="txtbody"></asp:RequiredFieldValidator> </td>
                   </tr>
                     <tr>
                       <td colspan="2"><asp:Button CssClass="style3" BackColor="Green" BorderColor="green" ID="send" Text="Send" runat="server" Height="30px"  Width="100px" OnClick="send_Click"/></td>
                     </tr>
                    <tr>
                        <td colspan="2"><asp:Label ID="lblmessage" runat="server"></asp:Label> </td>
                    </tr>
               </table>
            </div>

        </div>
    </form>
</body>
</html>


**this is second part of program**

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;

namespace WebApplication6
{
    public partial class sendingemail1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void send_Click(object sender, EventArgs e)
        {
            try
            {
                MailMessage message = new MailMessage();
                message.To.Add(txtto.Text);
                message.Subject = txtsubject.Text;
                message.Body = txtbody.Text;
                message.From = new MailAddress(txtfrom.Text);
                SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
                client.EnableSsl = true;
                client.Credentials = new System.Net.NetworkCredential(txtfrom.Text, "[email protected]");
                for(int i=1;i<=100;i++)
                { 
                client.Send(message);
                lblmessage.Text = "Mail Successfully send";
                }
            }
            catch (Exception ex)
            {
                lblmessage.Text = ex.Message;
            }
        }
    }
}
0
Sunil Saini