web-dev-qa-db-ja.com

SmtpClientを使用してGmailからメールを送信する

SmtpClientを介してGmailアカウントに接続しようとしていますが、正常に機能していないようです。ポート465を指定し、SSLを有効にしてすべてを定義しますが、2分ほどかかり、メッセージが送信されなかったというエラーが表示されます。

私はここで何が間違っているのですか?

try
{
    MailMessage msg = new MailMessage();
    msg.From = new MailAddress("[email protected]);
    msg.To.Add(new MailAddress("[email protected]));
    msg.Subject = "This is the subject";
    msg.Body = "This is the body";
    SmtpClient sc = new SmtpClient("smtp.gmail.com", 465);
    sc.EnableSsl = true;
    sc.UseDefaultCredentials = false;
    sc.Credentials = new NetworkCredential("[email protected]", "pass");
    sc.DeliveryMethod = SmtpDeliveryMethod.Network;
    sc.Send(msg);
    erroremail.Text = "Email has been sent successfully.";
}
catch (Exception ex)
{
    erroremail.Text = "ERROR: " + ex.Message;
}
10
Aradmey

「安全性の低いアプリ」を許可する必要があります。

https://support.google.com/accounts/answer/6010255

コード:

try
{
    new SmtpClient
    {
        Host = "Smtp.Gmail.com",
        Port = 587,
        EnableSsl = true,
        Timeout = 10000,
        DeliveryMethod = SmtpDeliveryMethod.Network,
        UseDefaultCredentials = false,
        Credentials = new NetworkCredential("[email protected]", "MyPassword")
    }.Send(new MailMessage {From = new MailAddress("[email protected]", "MyName"), To = {"[email protected]"}, Subject = "Subject", Body = "Message", BodyEncoding = Encoding.UTF8});
    erroremail.Text = "Email has been sent successfully.";
}
catch (Exception ex)
{
    erroremail.Text = "ERROR: " + ex.Message;
}