none
Отправка электронной почты при условии, что в сети используется прокси сервер RRS feed

  • Вопрос

  • Здравствуйте! Отправлять с приложения электронную почту достаточно легко, при условии, что нет прокси в локальной сети. Вот код процедуры отправки (хотя этот код достаточно часто тут приводится, но все же..):

    MailMessage mess = new MailMessage("from@yandex.ru", "to@inbox.ru");
    mess.Subject = "Test";
    mess.Body = "Test";
    SmtpClient client = new SmtpClient("smtp.yandex.ru", 25);    //Хотя вроде уже используют 465 порт, но это не важно, все равно
    client.UseDefaultCredentials = false;                                       //не работает в локалке, где есть прокся.
      client.Credentials = new NetworkCredential("from@yandex.ru", "паролька");
    try
    {
    client.Send(mess);
    textBox1.AppendText("Письмо отправлено!");

    }

    catch(Exception ex)

    {

     textBox1.AppendText(ex.Message); 

    }

    Так вот.. При прямом подключении к нету все работает безотказно. Но при работе в локальной сети, где выход в интернет через прокси, вылетает ошибка "Не удается подключиться к удаленному серверу". Это все из за прокси! Как учесть настройки прокси при отправке сообщения?

       

    17 апреля 2013 г. 8:13

Ответы

  • Прокси никакого отношения к SMTP трафику не имеет. Посмотрите какой сервер и порт указан в почтовом приложении ваших пользователей и укажите его в своем приложении. Или вы можете пробросить какой-нибудь порт на сервере смотрящем в Internet на 25 порт smtp.yandex.ru

    netsh interface portproxy add v4tov4 listenport=40025 listenaddress=0.0.0.0 connectport=25 connectaddress=0.0.0.0
    Или поднимать свой почтовый сервер. В любом случае если вопрос возник делать это должны не вы а администраторы сети.
    17 апреля 2013 г. 13:54