我的代码如下:
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);
但我收到了这个错误:
连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败
答案 0 :(得分:0)
您使用SMTP而非HTTP发送此邮件。 SMTP通常不使用代理,而是使用中继。我怀疑基于您的代码的根本问题是webmail.whateaver.xx.yy是交换Web服务端点,它不具备也不能配置为公开公开SMTP端口。您需要与控制该系统的任何人一起工作,并找出适当的访问方式。
如果他们无法公开SMTP - 这很有可能,如果你来,我会嘲笑你的脸并要求我这样做 - 你可能需要找到一个备用的出站SMTP选项或使用Exchange Web Services发送邮件。请参阅nuget了解EWS客户端库。
最后,在我发言的同时,请全世界帮忙,不要发送密码。