Я пытался узнать, как использовать пакет Net.Mail в C # и столкнулся с загадкой из getgo. Я получаю одно и то же исключение AuthenticationException, когда пытаюсь протестировать программу.
Я проверил некоторые другие сообщения на SO, и люди упомянули, что их антивирус заменяет сертификат, поэтому я попытался отключить его безрезультатно, а также попытался просто обойти его, отключив SSL-аутентификацию, но это только изменило мое исключение, так как, очевидно, Google выиграл не принимаю незащищенную передачу через порт 587. Хотя я бы действительно предпочел использовать аутентификацию SSL.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Mail;
using System.Net;
namespace EmailSender
{
public partial class Mailer : Form
{
public Mailer()
{
InitializeComponent();
}
private void Mailer_Load(object sender, EventArgs e)
{
}
private void btn_send_Click(object sender, EventArgs e)
{
MailMessage message = new MailMessage();
message.From = new MailAddress(txt_email.Text);
message.Subject = txt_subject.Text;
message.Body = txt_body.Text;
foreach (string s in txt_recipients.Text.Split(';'))
{
message.To.Add(s);
}
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential(txt_email.Text, txt_password.Text);
client.Host = "smtp-gmail.com";
client.Port = 587;
client.EnableSsl = true;
client.Send(message);
}
}
}
Вот моя трассировка стека
System.dll!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage message) Unknown
> EmailSender.exe!EmailSender.Mailer.btn_send_Click(object sender, System.EventArgs e) Line 42 C#
System.Windows.Forms.dll!System.Windows.Forms.Control.OnClick(System.EventArgs e) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Button.OnClick(System.EventArgs e) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs mevent) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.WmMouseUp(ref System.Windows.Forms.Message m, System.Windows.Forms.MouseButtons button, int clicks) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.ButtonBase.WndProc(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Button.WndProc(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.OnMessage(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback(System.IntPtr hWnd, int msg, System.IntPtr wparam, System.IntPtr lparam) Unknown
[Native to Managed Transition]
[Managed to Native Transition]
System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(System.IntPtr dwComponentID, int reason, int pvLoopData) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int reason, System.Windows.Forms.ApplicationContext context) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int reason, System.Windows.Forms.ApplicationContext context) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Application.Run(System.Windows.Forms.Form mainForm) Unknown
EmailSender.exe!EmailSender.Program.Main() Line 19 C#