Как отправить письмо из защищенной сети с закрытым SMTP-портом

Я пытался отправить электронное письмо из приложения для настольных компьютеров с помощью сервера SMTP, но моя сеть защищена и порт закрыт.

Итак, есть ли другой способ отправки электронной почты, например, используя Gmail API?!

Я использую этот код, но не работает со мной

  public void Send_Mail(string HTMLBody, string MailTo)
  {
      MailMessage Mail = new MailMessage();
      SmtpClient SmtpClient = new SmtpClient();

      string MailSubject = "Subject;
      string MailFrom = "from@xxxx.com";


      Mail.Subject = MailSubject;
      Mail.Body = HTMLBody;
      Mail.To.Add(MailTo);

      MailAddress From = new MailAddress(MailFrom);
      Mail.From = From;

      Mail.IsBodyHtml = true;

      SmtpClient.Host = "host";
      SmtpClient.Port = port;
      SmtpClient.EnableSsl = true;
      SmtpClient.Send(Mail);            
}

3 ответа

Я работал в месте, где у нас была похожая проблема. Настольным компьютерам не разрешалось отправлять электронные письма, но серверам можно было разрешать общаться с SMTP-сервером.

В итоге мы создали службу Windows, которая прослушивала сообщения, помещенные в очередь (в нашем случае это Tibco EMS, но MSMQ тоже подойдет). Служба взяла сообщения из очереди и передала их на SMTP-сервер, которому разрешено использовать.

Это добавило в систему дополнительный шаг и процесс, но этого было достаточно, чтобы удовлетворить отдел соответствия.

Если ваша сеть не разрешает исходящие соединения с тем портом, который использует gmail (или ограничивает определенный протокол, или IP, и т. Д.), То вы ничего не можете сделать. Вам нужно будет поговорить с "сетевыми парнями", чтобы снять это ограничение для вас или, что еще лучше, попросить их предоставить вам локальный smtp-сервер для использования.

Обычно "безопасная сеть" означает, что существует межсетевой экран, который ограничивает трафик и разрешает связь только на определенных портах, таких как порт 80 и, возможно, 8080.

Такие сети (рабочие места, общие офисные помещения, школы и т. Д.) Обычно имеют исходящий SMTP-сервер, который вы можете использовать. В качестве альтернативы вам нужно будет использовать сервер, с которым можно связаться через фактически открытый (ые) порт (ы) или ретранслировать / туннелировать запрос через третью сторону.

Другие вопросы по тегам