2013-08-01 4 views
2

Я попытался отправить электронное письмо из приложения Desktop с помощью 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 = "[email protected]"; 


     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);    
} 
+2

В вашей безопасной сети не используется SMTP-сервер? –

+0

, чтобы использовать его, моя машина должна принимать статический IP-адрес, и каждая машина будет использовать этот инструмент, который должен принимать статический IP-адрес, и это не хорошо. –

ответ

2

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

1

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

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

2

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

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

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

+0

Я не занимался службой Windows, поэтому я не могу понять, как она читается из очереди и где будет эта очередь. –

+0

Для размещения очереди вам понадобится промежуточное решение (например, Microsoft MSMQ). Затем очередь будет доступна для ваших настольных компьютеров и серверов. – Sean

+0

У каждого клиента есть очередь, и все они будут связываться с сервером? –