如何通过关闭的SMTP端口从安全网络发送电子邮件
本文关键字:安全网 安全 网络 电子邮件 何通过 SMTP | 更新日期: 2023-09-27 18:25:51
我试图使用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);
}
如果你的网络不允许到gmail使用的任何端口的出站连接(或限制特定协议或IP等),那么你就无能为力了。你必须与"网络人员"谈谈,要么为你删除这个限制,要么更好的是,让他们提供本地smtp服务器供你使用。
我曾在一个遇到类似问题的地方工作过。台式机不允许发送电子邮件,但可以允许服务器与SMTP服务器进行通信。
我们最终所做的是编写一个windows服务,该服务侦听放置在队列中的消息(在我们的案例中是Tibco EMS,但MSMQ也可以)。该服务从队列中获取邮件并将其传递到SMTP服务器上。该服务器被允许使用。
它为系统增加了一个额外的步骤和流程,但足以让合规部门满意。
通常情况下,"安全网络"意味着有一个防火墙来限制流量,并且只允许在某些端口上进行通信,如端口80和8080。
这样的网络(工作场所、共享办公空间、学校等)通常有一个可以使用的传出SMTP服务器。或者,您需要使用可以通过实际打开的端口联系的服务器,或者通过第三方中继/隧道传输请求。