0

我可以通过以下方式使用 Yahoo 电子邮件发送电子邮件。但我的问题是我是否也可以让计算机在连接​​雅虎服务器时使用代理?我的意思是使用代理连接来连接雅虎 smpt 服务器。这可能吗 ?谢谢你

public static bool func_SendEmail(string srFrom, string srSenderEmail, string srSenderEmailPw, 
        string srHtmlBody, string srTextBody, string srTitle, string srProxy)
{
    try
    {
        using (MailMessage message = new MailMessage(new MailAddress(srSenderEmail, srFrom), new MailAddress(srSenderEmail)))
        {
            message.ReplyTo = new MailAddress(srSenderEmail, srFrom);
            message.IsBodyHtml = false;
            message.Subject = srTitle;
            message.SubjectEncoding = System.Text.Encoding.UTF8;
            AlternateView textPart = AlternateView.CreateAlternateViewFromString(srTextBody, Encoding.UTF8, "text/plain");
            textPart.TransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;
            message.AlternateViews.Add(textPart);
            AlternateView htmlPart = AlternateView.CreateAlternateViewFromString(srHtmlBody, Encoding.UTF8, "text/html");
            htmlPart.TransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;
            message.AlternateViews.Add(htmlPart);
            message.BodyEncoding = Encoding.UTF8;
            using (SmtpClient oSmtp = new SmtpClient())
            {
                oSmtp.Host = "smtp.mail.yahoo.com";
                oSmtp.Credentials = new NetworkCredential(srSenderEmail, srSenderEmailPw);
                oSmtp.EnableSsl = false;
                oSmtp.Port = 587;
                oSmtp.Send(message);
            }
        }
    }
    catch
    {
        return false;
    }
    return true;
}

好吧,这个问题和这个问题不一样:Sending mail through http proxy

该问题专门询问如何使用代理

另一方面,我的问题是如何使用 http 代理连接另一个邮件服务器来发送电子邮件

在这种情况下,我想为每个线程使用线程、代理,并从这个每个线程连接到 yahoo smtp 服务器,并使用 http 代理发送电子邮件

谢谢你

4

1 回答 1

2
System.Net.GlobalProxySelection.Select = new WebProxy(address,port);

更新:System.Net.GlobalProxySelection.Select已弃用

如果你使用它,你会得到一个警告:

该类已被弃用。请改用 WebRequest.DefaultWebProxy 来访问和设置全局默认代理。使用“null”而不是 GetEmptyWebProxy。http://go.microsoft.com/fwlink/?linkid=14202

改用这个:

WebRequest.DefaultWebProxy = new WebProxy(address,port);
于 2013-06-21T13:32:57.800 回答