Я занимаюсь разработкой веб-сайта ASP .Net.
Одна из моих страниц ASPX содержит кнопку.
Когда эта кнопка нажата, я хочу отправить электронное письмо с помощью SMTP-сервера Gmail.
Я хочу использовать учетную запись Gmail в качестве учетных данных.Отправка электронной почты с помощью ASP .Net и Gmail SMTP
Вот баттона обработчик события нажатия:
protected void m_myButton_Click(object p_sender, EventArgs p_args)
{
string l_subject = "My subject";
StringBuilder l_builder = new StringBuilder();
// ...
string l_body = l_builder.ToString();
string l_host = ConfigurationManager.AppSettings["SmtpHost"];
int l_port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]);
NameValueCollection l_smtpAccount = (NameValueCollection)ConfigurationManager.GetSection("smtpAccount");
string l_address = l_smtpAccount["SmtpAddress"];
string l_password = l_smtpAccount["SmtpPassword"];
MailMessage l_mail = new MailMessage();
l_mail.From = new MailAddress(l_address);
l_mail.To.Add(l_address);
l_mail.Subject = l_subject;
l_mail.Body = l_body;
SmtpClient l_smtp = new SmtpClient();
l_smtp.Host = l_host; // l_host = "smtp.gmail.com"
l_smtp.Port = l_port; // l_port = 587
l_smtp.EnableSsl = true;
l_smtp.UseDefaultCredentials = false;
l_smtp.Credentials = new NetworkCredential(l_address, l_password);
l_smtp.Send(l_mail);
}
Командная строка l_smtp.Send (l_mail) терпит неудачу.
SMTP возбуждается исключение, а свойство InnerException сообщает мне, что (в переводе с французского языка на английский): Нет соединения было etablished, потому что целевой компьютер отказался его 173.194.67.108:587
Мой код основан на коде найден на этой странице: http://www.codeproject.com/Questions/254743/sending-email-in-asp-net-using-smtp-gmail-server
Любая помощь будет высоко оценен
Можете ли вы подключиться к этому серверу и порту с вашего компьютера вне вашего кода ASP.NET? например 'telnet smtp.gmail.com 587' или используйте [PuTTY] (http://www.chiark.greenend.org.uk/~sgtatham/putty/)' putty -raw smtp.gmail.com 587'. Это работает для меня отсюда (хотя я не пытаюсь SSL) – Rup
1. Учетные данные - вы должны использовать не свою электронную почту в качестве логина. Я имею в виду, если ваша электронная почта «[email protected]» - ваш логин для Credentails должен быть «mymail», а не «[email protected]». 2. l_mail.To.Add (новый MailAddress (l_address)) –
@Rup I попытались подключиться к smtp.gmail.com с помощью telnet, но у меня есть сообщение об ошибке: Connection отказано. Я указал 587 как номер порта и raw как протокол. Я не пытался подключиться с помощью telnet, потому что он не сообщает об успешном или неудачном соединении. – user1139666