отправка электронной почты с использованием учетной записи Gmail на локальном компьютере - PullRequest
0 голосов
/ 14 января 2011

Я использую Gmail для отправки электронной почты в моем приложении asp.net. Электронная почта работает нормально, если я отправляю электронную почту на сервер, но если я пытаюсь отправить электронную почту на локальный компьютер, это выдает ошибку. Я поместил точку останова в коде, и когда вызывается метод send, он отображает окно с ошибкой с заголовком «Исключение Smtp было обработано кодом пользователя», а в деталях написано «Faliur send mail».

Если я продолжил работу в браузере, он отображает страницу ошибки со следующими данными:

Существующее соединение было принудительно закрыто удаленным хостом. Описание: Произошло необработанное исключение во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Net.Sockets.SocketException: существующее соединение было принудительно закрыто удаленным хостом

Ниже мой код, пожалуйста, наведите меня.

Спасибо.

  protected void btnConfirm_Click(object sender, EventArgs e)
{
    string _Message = GetAdminEmailMessage();        

    MailMessage message = new MailMessage();
    SmtpClient smtp = new SmtpClient();
    NetworkCredential mailAuthentication = new NetworkCredential("myaccount@gmail.com", "mypassword");
    message.To.Add(new MailAddress("mc5678@hotmail.com"));
    message.From = new MailAddress("myaccount@gmail.com");
    message.IsBodyHtml = true;
    message.Subject = "Local test email";
    message.Body = _Message;
    smtp.UseDefaultCredentials = false;
    smtp.EnableSsl = true;
    smtp.Port = 587;
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtp.Host = "smtp.gmail.com";
    smtp.Credentials = mailAuthentication;
    smtp.Send(message);

}

1 Ответ

1 голос
/ 14 января 2011

Код ошибки 0x800CCC0E указывает, что порт был заблокирован: http://support.microsoft.com/kb/191687

Попробуйте telnet smtp.gmail.com 587 - Вы можете подключиться?

Если ваш порт разблокирован и ваши учетные данные верны, тогда код в принятом ответе на этот вопрос должен работать.

Отправка электронной почты через SMTP-сервер Gmail с помощью C #

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new SmtpClient("smtp.gmail.com", 587)
            {
                Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"),
                EnableSsl = true
            };
            client.Send("myusername@gmail.com", "myusername@gmail.com", "test", "testbody");
            Console.WriteLine("Sent");
            Console.ReadLine();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...