Проблема: создали небольшую почтовую программу, которая отлично работает на моем компьютере разработчика, но при запуске она не работает.
protected void Page_Load(object sender, EventArgs e)
{
string smtpHost = ConfigurationManager.AppSettings["SmtpAddress"];
MailMessage mail = new MailMessage();
mail.From = new MailAddress(ConfigurationManager.AppSettings["FromMailAddress"]);
mail.Sender = new MailAddress(ConfigurationManager.AppSettings["FromMailAddress"]);
mail.To.Add(new MailAddress("zzz@xxx.yy"));
mail.Subject = "Test mail";
mail.Body = string.Format("Is this mail sent via {0} ?", smtpHost);
lblMsg2.Text = string.Format("SmtpHost: {0}", smtpHost); ;
SmtpClient client = new SmtpClient(smtpHost);
try
{
client.Send(mail);
}
catch (Exception exception)
{
lblMsg3.Text = exception.Message.ToString();
lblMsg4.Text = exception.InnerException.ToString();
}
}
Я получаю правильный почтовый адрес и все на рабочем сервере, но в почтовом ящике электронной почты ничего не заканчивается :-(. Я не получаю никаких исключений.
Я пытался использовать telnet на том же сервере, и оттуда я могу отправлять письма.
Я попытался установить WireShark, который просматривает сетевую карту на сервере, и при использовании telnet я получаю ответ, который я подозревал, но из моей программы я ничего не получаю.
Отредактировано 2012-03-12 @ 09:46 по датскому времени
Теперь обновили код, чтобы он выглядел следующим образом
protected void Page_Load(object sender, EventArgs e)
{
string smtpHost = ConfigurationManager.AppSettings["SmtpAddress"];
MailMessage mail = new MailMessage();
mail.From = new MailAddress(ConfigurationManager.AppSettings["FromMailAddress"]);
mail.Sender = new MailAddress(ConfigurationManager.AppSettings["FromMailAddress"]);
mail.To.Add(new MailAddress("zzz@xxx.yy"));
mail.Subject = "Test mail";
mail.Body = string.Format("Is this mail sent via {0} ?", smtpHost);
lblMsg2.Text = string.Format("SmtpHost: {0}", smtpHost); ;
SmtpClient client = new SmtpClient(smtpHost);
client.Send(mail);
}
И довольно интересно: даже при вставке SMTP-сервера, который точно не существует, я все равно не получаю никаких ошибок в моей производственной среде. Я получаю исключение на моем компьютере разработчика, что в основном означает, что smtp-сервер не существует (о котором я также ожидал получить сообщение).