2

我尝试使用 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);            
}
4

3 回答 3

2

如果您的网络不允许出站连接到 gmail 使用的任何端口(或限制特定协议或 IP 等),那么您无能为力。您必须与“网络人员”交谈才能为您删除此限制,或者更好的是,要求他们提供本地 smtp 服务器供您使用。

于 2013-08-01T11:15:15.113 回答
2

我曾在我们遇到类似问题的地方工作过。台式机不允许发送电子邮件,但可以允许服务器与 SMTP 服务器通信。

我们最终做的是编写一个 Windows 服务来侦听放置在队列中的消息(在我们的例子中是 Tibco EMS,但 MSMQ 也可以)。该服务从队列中获取消息并将它们传递到 SMTP 服务器,并被允许使用。

它为系统增加了一个额外的步骤和流程,但足以满足合规部门的要求。

于 2013-08-01T11:24:05.363 回答
1

通常,“安全网络”意味着有一个防火墙来限制流量,并且只允许在某些端口上进行通信,例如端口 80 和可能的 8080。

此类网络(工作场所、共享办公空间、学校等)通常具有您可以使用的传出 SMTP 服务器。或者,您将需要使用可以通过实际打开的端口联系的服务器,或者通过第三方中继/隧道请求。

于 2013-08-01T11:16:26.710 回答