Ich schreibe eine C# -E-Mail-Anwendung, die derzeit für die Verwendung mit Gmail entwickelt wurde, damit ich die Authentifizierung testen kann. Allerdings bekomme ich einen Fehler, der anscheinend nicht viel Sinn macht, da ich SSL auf true setze und einen Benutzer und ein Passwort benutze.Authentifizierungsfehler SMTP-Anforderung senden
Fehlermeldung: System.Net.Mail.SmtpException: ‚Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert. Die Serverantwort lautete: 5.5.1 Authentifizierung erforderlich. Erfahren Sie mehr unter‘
using System;
using System.Net;
using System.Net.Mail;
namespace EmailSendingProgram
{
public class EmailSendingClass
{
public static void Main(string[] args)
{
Console.WriteLine("Type your Gmail Address: ");
string from = Console.ReadLine();
Console.WriteLine("Type your Gmail Password: ");
string password = Console.ReadLine();
Console.WriteLine("Type the Email Address you wish to send to: ");
string to = Console.ReadLine();
Console.WriteLine("Type the Subject of the email: ");
string subject = Console.ReadLine();
Console.WriteLine("Type or paste in your email (either text or HTML): ");
string body = Console.ReadLine();
EmailSendingClass email = new EmailSendingClass();
email.Send(from, password, to, subject, body);
}
/// handles sending the email
/// hardcoded to work with gmail just change the CreateSmtpClient from
/// "smtp.gmail.com", 587 to whatever you want to use
public void Send(string from, string password, string to, string subject, string body)
{
var message = CreateMailMessage(from, to, subject, body);
// Host and Port setup for use with Gmail
using (SmtpClient client = CreateSmtpClient("smtp.gmail.com", 587, from, password))
{
client.Send(message);
}
}
/// Defines the SmtpClient for the mail message
/// setups up the network credentials to send the email
private SmtpClient CreateSmtpClient(string host, int port, string from, string password)
{
SmtpClient client = null;
client = new SmtpClient()
{
Host = host,
Port = port,
EnableSsl = true,
Credentials = new NetworkCredential(from, password)
};
return client;
}
/// defines what is contained in the email and where it will be sent
/// also makes all messages send as HTML
private MailMessage CreateMailMessage(string from, string to, string subject, string body)
{
MailMessage message = null;
message = new MailMessage(from, to)
{
Subject = subject,
Body = body
};
message.IsBodyHtml = true;
return message;
}
}
}
Ich verstehe, dass etwas falsch mit der Authentifizierung getan wird, aber ich kann nicht herausfinden, was spezifisch zu sein scheint. So würde jede Hilfe geschätzt werden.
Welchen Port verwenden Sie? – Isma
@Isma er verwendet 587, wie es im Code zeigt –
Ich denke, dieser Fehler ist aufgrund der Sicherheitsregeln von Google Mail. Wenn Sie die Sicherheitseinstellungen des Google Mail-Kontos nicht deaktiviert haben (ich kann mich nicht erinnern, welche es war, tut mir leid), lässt Google Mail Ihre Anwendung nicht einmal mit korrekten Anmeldedaten und Einstellungen authentifizieren. – ihpar