通过代理发送SMTP邮件

时间:2019-12-02 12:27:27

标签: c# proxy smtpclient

我正在尝试向我的C#Desktop应用程序添加一个功能,该功能向我发送一封电子邮件,其中包含用户将填写表格的信息。当我尝试通过代理发送邮件(SMTP)时出现问题(当我有免费的代理连接时,它工作正常)。

我尝试修改 App.config ,并添加了以下内容:

<system.net>
    <defaultProxy enabled="false">
      <proxy proxyaddress="192.168.10.4:3128"/>
    </defaultProxy>
</system.net>

我还尝试将enable属性切换为“ true”,将代理地址与http://或添加:

<mailSettings>  
   <smtp deliveryMethod="Network">
      <network  
         host="192.168.10.4"  
         port="3128"  
         defaultCredentials="false"/> <!-- or "true" -->  
   </smtp>  
</mailSettings> 

到目前为止没有任何工作...

代码本身:

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

            mail.From = new MailAddress("myemail@gmail.com");
            mail.To.Add("myemail@gmail.com");
            mail.Subject = "Test";
            mail.Body = "Body of the testing message";

            SmtpServer.Port = 587;
            SmtpServer.Credentials = new System.Net.NetworkCredential("myemail@gmail.com", "mypassword");
            SmtpServer.EnableSsl = true;

            SmtpServer.Send(mail);
            MessageBox.Show("Message sent");

            Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Problem sending the message");
        }
    }

正如我所说,当我在家中使用免费代理连接时,该应用程序可以正常运行,并且毫无问题地发送消息,但是当尝试通过代理发送消息时,不会让我这么做。

有什么建议吗? 谢谢!

0 个答案:

没有答案