Wysyłaj pocztę SMTP z kont Gmail, live, aol lub yahoo, gdy mój komputer jest podłączony przez proxy lub bez proxy do Internetu

Chcę wysłać e-mail w C # za pośrednictwem SMTP do różnych dostawców poczty, np. Gmail, Yahoo, AOL, Msn, Live itp., Aby mój kod działał poprawnie, jeśli mój komputer jestpodłączony do Internetu przez proxy lub podłączony bezpośrednio do Internetu. (Proxy to przekazujący proxy pobierający żądania z sieci wewnętrznej i przekazujący je do Internetu, a ja konfiguruję proxy w I.E. as)
.................................

Mam kod, za pomocą którego mogę wysłać pocztę SMTP, jeśli komputer nie jest podłączony przez serwer proxy

    public void SendMail(string senderId, string password, List<string> To, List<string> CC, List<string> BCC, string Subject, string Body, List<Attachment> Attachment)
    {
        SmtpClient SmtpServer = null;
        string[] ss = senderId.Split('@');

        string ServerName = ss[1].Substring(0, ss[1].IndexOf("."));

        switch (ServerName.ToLower())
        {
            case "gmail":
                SmtpServer = new SmtpClient("smtp.gmail.com");
                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential(senderId, password);
                SmtpServer.EnableSsl = true;
                break;
            case "msn":
            case "live":
            case "hotmail":
            case "outlook":
                SmtpServer = new SmtpClient("smtp.live.com");
                SmtpServer.Port = 25;
                SmtpServer.Credentials = new System.Net.NetworkCredential(senderId, password);
                SmtpServer.EnableSsl = true;
                break;

            case "aol":
                SmtpServer = new SmtpClient("smtp.aol.com");
                SmtpServer.Port = 25;
                SmtpServer.Credentials = new System.Net.NetworkCredential(senderId, password);
                SmtpServer.EnableSsl = true;
                break;
            case "yahoo":
            case "ymail":
            case "rocketmail":
            case "yahoomail":
                SmtpServer = new SmtpClient("smtp.mail.yahoo.com");
                SmtpServer.Port = 25;
                SmtpServer.Credentials = new System.Net.NetworkCredential(senderId, password);
                SmtpServer.EnableSsl = false;
                break;
            default:

                break;


        }
        SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network;

        MailMessage mail = new MailMessage();
        mail.From = new MailAddress(senderId);

        foreach (string item in To)
        {
            mail.To.Add(item);
        }
        foreach (string item in CC)
        {
            mail.CC.Add(item);
        }
        foreach (string item in BCC)
        {
            mail.Bcc.Add(item);
        }

        mail.Subject = Subject;
        mail.Body = Body;

        foreach (Attachment item in Attachment)
        {
            mail.Attachments.Add(item);
        }

        SmtpServer.Send(mail);

    }

To działa doskonale, ale chcę wysyłać wiadomości e-mail, gdy jestem połączony przez serwer proxy.

Przeczytałem tak wiele postów, jakWysyłanie poczty przez serwer proxy
Poczta SMTP ASP.net przez serwer proxy
Czy istnieje biblioteka .NET do wysyłania e-maili za pośrednictwem PROXY?
Wszyscy twierdzą, że nie jest to możliwe, ale podczas wyszukiwaniaZnalazłem bibliotekę chilkat,próbka limilabów który pozwala użytkownikowi wysyłać pocztę przez serwery proxy, konfigurując proxy.
Dużo badałem, przeczytałem proxy SOCKS, nauczyłem się wysyłać pocztę SMTP przy użyciu surowych gniazd, ale nie mogę znaleźć rozwiązania czegoś, czego brakuje.
Będę wdzięczny za wszelkie pomysły na jakąś pracę, która została wykonana wcześniej, jeśli ktokolwiek, kto stanął w obliczu tego samego problemu lub jakichkolwiek pomysłów, co mogę zrobić?

EDYTOWAĆ:- Jak już wspomniałem, znalazłem próbki za pomocąChilkat i limilabs to znaczyNie chcę ich używać i nie wolno mi używać żadnegodll strony trzeciej

questionAnswers(1)

yourAnswerToTheQuestion