如何使用Exchange服务器通过代理服务器发送邮件

本文关键字:代理服务器 何使用 Exchange 服务器 | 更新日期: 2023-09-27 18:17:54

代码如下:

        MailMessage mail = new MailMessage();
        mail.To.Add("******");
        mail.CC.Add("*****");
        mail.From = new MailAddress("*******");
        mail.Subject = "Salesforce Credential for ";
        mail.SubjectEncoding = Encoding.UTF8;
        string Body = "<html><head></head><body>Hi,<br> Project Name:&nbsp;"
        + " <br> Username &nbsp;&nbsp;&nbsp;&nbsp;:&nbsp; "
        + " <br> Password &nbsp;&nbsp;&nbsp;&nbsp;:&nbsp; "
        + " <br> Security&nbsp;Token &nbsp;&nbsp;&nbsp;&nbsp;:&nbsp; ";
        mail.Body = Body;
        mail.BodyEncoding = Encoding.UTF8;
        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "webmail.***************.**.**";
        string uid = "***********";
        string pwd = "*********";
        smtp.Credentials = new System.Net.NetworkCredential(uid, pwd);
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
       // without this I get: The remote certificate is invalid according to the validation procedure.
        smtp.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate2(@"********"));
        //Or your Smtp Email ID and Password
        smtp.EnableSsl = true;
        smtp.Send(mail);

但是我得到了这个错误:

连接尝试失败,因为被连接方在一段时间后没有正确响应,或者由于连接的主机未能响应,已建立的连接失败

如何使用Exchange服务器通过代理服务器发送邮件

您正在使用SMTP而不是HTTP发送此消息。SMTP通常不使用代理,而是使用中继。根据您的代码,我怀疑根本问题是webmail. whatever .xx.yy是交换web服务端点,它不能也不能配置为公开暴露SMTP端口。你需要和控制那个系统的人取得联系,找出进入系统的适当方法。

如果他们不能暴露SMTP——这是很有可能的,如果你来要求我这样做,我会嘲笑你的脸——你可能需要找到一个备用的出站SMTP选项或使用Exchange Web Services来发送邮件。参见nuget获取EWS客户端库。

最后,在我发言的时候,请帮这个世界一个忙,不要用电子邮件发送密码。