C# 通过http代理发送邮件

C# 通过http代理发送邮件,c#,proxy,smtpclient,http-proxy,C#,Proxy,Smtpclient,Http Proxy,我正在尝试从一个通过http代理连接到internet的系统发送电子邮件,该代理设置在internet选项中 我正在使用SmtpClient 是否有任何方法可以通过此代理设置使用SmtpClient发送邮件。 感谢Http代理控制Http流量,它们很少与SMTP有任何关系。我以前从未听说过代理SMTP,毕竟SMTP本身本质上支持到目标SMTP服务器的“代理”链 如果您对internet的唯一访问是通过HTTP,那么您能够做到这一点的唯一方法就是在端口443上使用SSH设置一个VPS(或等价物),

我正在尝试从一个通过http代理连接到internet的系统发送电子邮件,该代理设置在internet选项中

我正在使用SmtpClient

是否有任何方法可以通过此代理设置使用SmtpClient发送邮件。
感谢Http代理控制Http流量,它们很少与SMTP有任何关系。我以前从未听说过代理SMTP,毕竟SMTP本身本质上支持到目标SMTP服务器的“代理”链

如果您对internet的唯一访问是通过HTTP,那么您能够做到这一点的唯一方法就是在端口443上使用SSH设置一个VPS(或等价物),并使用开瓶器(或putty)通过SSH隧道。从这里开始,通过ssh隧道转发smtp流量就很简单了


请注意,如果您这样做,可能会违反公司的计算策略。

我知道您希望使用浏览器默认设置,我也希望得到答案

同时,您可以手动执行此操作

    MailAddress from = new MailAddress("from@mailserver.com");
    MailAddress to = new MailAddress("to@mailserver.com");

    MailMessage mm = new MailMessage(from, to);
    mm.Subject = "Subject"
    mm.Body = "Body";

    SmtpClient client = new SmtpClient("proxy.mailserver.com", 8080);
    client.Credentials = new System.Net.NetworkCredential("from@mailserver.com", "password");

    client.Send(mm);

@Anthony,我相信他指的是SmtpClient类。你可以代理SMTP来说是垃圾邮件过滤器。垃圾邮件过滤器将评估电子邮件并将其转发到SMTP服务器。@Charles:正如我在回答中所说,STMP本质上是一系列指向目标的“代理”。垃圾邮件过滤器只是链中的另一个SMTP服务器。我相信这是可能的。聪明的组件实现了一个:但它似乎不值得购买