Не удается отправить SMTP письмо из сети с помощью C #, веб-сайт asp.net - PullRequest
1 голос
/ 01 апреля 2010

У меня есть мой код здесь, он отлично работает из моего дома, где мой пользователь является администратором, и я подключен к Интернету через кабельную сеть. Но проблема в том, что когда я пробую этот код с моего рабочего места, он не работает. Показывает ошибку: "невозможно подключиться к удаленному серверу" С другой машины в той же сети: «Была предпринята попытка операции с сокетом в недоступной сети. 209.xxx.xx.52: 25»

Я проверил у нашего сетевого администратора, и он заверил меня, что все почтовые порты открыты [25 110, а другие порты для gmail].

Затем я вошел в систему с правами администратора, было небольшое улучшение, оно не показывало никаких ошибок, но фактическое письмо не было получено.

Обратите внимание, что код был протестирован в среде разработки Visual Studio 2005 и 2008.

Любое предложение будет высоко ценится. Заранее спасибо

 try
    {
        MailMessage mail_message = new MailMessage("xxxxx@y7mail.com", txtToEmail.Text, txtSubject.Text, txtBody.Text);
        SmtpClient mail_client = new SmtpClient("SMTP.y7mail.com");
        NetworkCredential Authentic = new NetworkCredential("xxxxx@y7mail.com", "xxxxx");
        mail_client.UseDefaultCredentials = true;
        mail_client.Credentials = Authentic;
        mail_message.IsBodyHtml = true;
        mail_message.Priority = MailPriority.High;
        try
        {
            mail_client.Send(mail_message);
            lblStatus.Text = "Mail Sent Successfully";
        }
        catch (Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(ex.Message);
            lblStatus.Text = "Mail Sending Failed\r\n" + ex.Message;
        }
    }
    catch (Exception ex)
    {
        lblStatus.Text = "Mail Sending Failed\r\n" + ex.Message;
    }

Ответы [ 4 ]

1 голос
/ 01 апреля 2010

Вот пример кода, который работает для меня и говорит с сервером Gmail

private void SendEmail(string from, string to, string subject, string body)
    {
      MailMessage mail = new MailMessage(new MailAddress(from), new MailAddress(to));

      mail.Subject = subject;
      mail.Body = body; 

      SmtpClient smtpMail = new SmtpClient("smtp.gmail.com");
      smtpMail.Port = 587;
      smtpMail.EnableSsl = true;
      smtpMail.Credentials = new NetworkCredential("xxx@gmail.com", "xxx");
      // and then send the mail
      smtpMail.Send(mail);
    }
1 голос
/ 01 апреля 2010

Попробуйте установить UseDefaultCredentials в false.

0 голосов
/ 06 мая 2012
private void SendEmail(string from, string to, string subject, string body)
    {
      MailMessage mail = new MailMessage(new MailAddress(from), new MailAddress(to));

      mail.Subject = subject;
      mail.Body = body; 

      SmtpClient smtpMail = new SmtpClient("smtp.gmail.com");
      smtpMail.Port = 587;
      smtpMail.EnableSsl = true;
      smtpMail.Credentials = new NetworkCredential("xxx@gmail.com", "xxx");
      // and then send the mail
      smtpMail.Send(mail);
    }

Это лучший ответ для проблемы System.Exception. Полностью проверено, вам необходимо предоставить имя пользователя и пароль в сетевых учетных данных. Также попробуйте дать это решение другим сайтам.

0 голосов
/ 01 апреля 2010

Также попробуйте включить SSL для y7mail

mail_client.EnableSSL = true;

Источник - http://help.yahoo.com/l/au/yahoo7/edit/registration/registration-488246.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...