从c#发送邮件会导致代理失败

时间:2016-02-02 06:06:05

标签: c# asp.net email visual-studio-2012 proxy

以下是我通过http代理发送邮件的代码。我已将我的代理设置为与上述相同。现在,当我尝试运行程序时,经过一段时间它会说* System.Net.WebException:无法解析远程名称。我可以知道我哪里出错吗?

protected void mailto(string message)
    {
        WebRequest.DefaultWebProxy = new WebProxy("10.1.1.4", 8080);
        try
        {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
            mail.From = new MailAddress("mymail@gmail.com");
            mail.To.Add("to_address");
            mail.Subject = "For Data Using";
            mail.Body = message;
            SmtpServer.Port = 465;// Tried even with 587, but no luck
            SmtpServer.Credentials = new System.Net.NetworkCredential("mymail@gmail.com", "mypassword");
            SmtpServer.EnableSsl = true;
            SmtpServer.Send(mail);
            Debug.WriteLine(Environment.NewLine + "message sent");
        }
        catch (Exception ex)
        {
            Debug.WriteLine("Message not sent" + ex.ToString());
        }
    }

1 个答案:

答案 0 :(得分:1)

我在使用Gmail SMTP从c#发送邮件遇到了同样的问题,问题是端口问题。 尝试使用端口:587

            SmtpServer.Port = 587;

另外请不要忘记启用POP& IMAP访问您的Gmail帐户,转到设置,从标签中选择“转发和POP / IMAP”,然后启用POP& IMAP