如何使用http代理,同时通过SmtpClient发送电子邮件

本文关键字:SmtpClient 电子邮件 http 何使用 代理 | 更新日期: 2023-09-27 18:17:58

我可以通过以下方式与雅虎电子邮件发送电子邮件。但我的问题是,我也可以使它的方式,计算机将使用代理连接雅虎服务器?我的意思是使用代理连接连接雅虎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;
}

好了,这个问题和这个不一样,通过http代理发送邮件

这个问题特别问的是如何使用代理

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

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

谢谢

如何使用http代理,同时通过SmtpClient发送电子邮件

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);