如何使用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: "
+ " <br> Username : "
+ " <br> Password : "
+ " <br> Security Token : ";
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);
但是我得到了这个错误:
连接尝试失败,因为被连接方在一段时间后没有正确响应,或者由于连接的主机未能响应,已建立的连接失败
您正在使用SMTP而不是HTTP发送此消息。SMTP通常不使用代理,而是使用中继。根据您的代码,我怀疑根本问题是webmail. whatever .xx.yy是交换web服务端点,它不能也不能配置为公开暴露SMTP端口。你需要和控制那个系统的人取得联系,找出进入系统的适当方法。
如果他们不能暴露SMTP——这是很有可能的,如果你来要求我这样做,我会嘲笑你的脸——你可能需要找到一个备用的出站SMTP选项或使用Exchange Web Services来发送邮件。参见nuget获取EWS客户端库。
最后,在我发言的时候,请帮这个世界一个忙,不要用电子邮件发送密码。