C#-从BlueHost发送电子邮件

C#-从BlueHost发送电子邮件,c#,email,smtp,bluehost,C#,Email,Smtp,Bluehost,我有BlueHost,但我无法让它与C#一起工作。我已从我登录的页面上删除了详细信息: 然后,我使用此代码尝试发送电子邮件: MailMessage message = new MailMessage { From = new MailAddress("toEmail@site.com", "toEmail@site.com") }; message.IsBodyHtml = false; message.To.Add("email@site.com"); message.Subjec

我有BlueHost,但我无法让它与C#一起工作。我已从我登录的页面上删除了详细信息:

然后,我使用此代码尝试发送电子邮件:

MailMessage message = new MailMessage
{
    From = new MailAddress("toEmail@site.com", "toEmail@site.com")
};
message.IsBodyHtml = false;
message.To.Add("email@site.com");
message.Subject = "my subject";
message.Body = "body";
message.Priority = MailPriority.Normal;
SmtpClient client = new SmtpClient
{
    Port = 465,
    Host = "box263.bluehost.com",
    EnableSsl = true,
    Credentials = new NetworkCredential("myEmail@site.com", "myPassword"),
    Timeout = 10000,
    UseDefaultCredentials = false
};
client.Send(message);
它抛出一个错误,说它超时了,即使它有足够的时间(10秒)。即使我没有设定一个超时时间,它也只是停留一段时间。我也尝试过不使用SSL,禁用“EnableSsl”,将端口更改为“26”,将主机更改为“mail.embirk.com”,但这也不起作用。此外,这也适用于第三方软件,如Microsoft Outlook等。有什么想法吗?谢谢

编辑: 我还联系了Bluehost的二级支持技术人员,他们说他们也被难倒了。他们说他们用雷鸟试过了,一切都成功了。他们说可能在找证书

编辑2:

这个outlookregistry东西能帮上忙吗。(如果运行Outlook,则此选项适用)


我将尝试在客户端块之外声明凭据,并将其分配给客户端凭据

实际上,把这个积木全部清除掉

NetworkCredential myCred = new NetworkCredential("xxxxxxxx", "xxxxxxxx");


client.Credentials = myCred;
client.port = 465,
client.Host = "box263.bluehost.com",
client.EnableSsl = true,
client.Credentials = new NetworkCredential("myEmail@site.com", "myPassword"),
client.Timeout = 10000,
client.UseDefaultCredentials = false

我将尝试在客户端块之外声明凭据,并将其分配给客户端凭据

实际上,把这个积木全部清除掉

NetworkCredential myCred = new NetworkCredential("xxxxxxxx", "xxxxxxxx");


client.Credentials = myCred;
client.port = 465,
client.Host = "box263.bluehost.com",
client.EnableSsl = true,
client.Credentials = new NetworkCredential("myEmail@site.com", "myPassword"),
client.Timeout = 10000,
client.UseDefaultCredentials = false

不要误会,但是你试过联系bluehost的客户支持吗?是的,我联系了bluehost的二级支持技术人员,他们说他们也被难倒了。他们说他们用雷鸟试过了,一切都成功了。他们说,它可能正在寻找一个证书?引用自BH:Bluehost确实提供了一个免费的共享SSL证书,可供居住在共享IP地址上的所有帐户使用。有关共享SSL证书的更多信息->您是否可以使用该证书?我也遇到了问题。我今天也遇到了同样的问题,端口
465
上的SMTP在Python中工作得很好,但在C#中超时。我的解决办法是使用端口
587
并使用“boxxx.bluehost.com”作为主机,而不是像OP在他的问题中所做的那样使用“mail.mydomain.com”。别误会了,但是你有没有试着联系bluehost的客户支持?是的,我联系了bluehost的二级支持技术,他们说他们也被难倒了。他们说他们用雷鸟试过了,一切都成功了。他们说,它可能正在寻找一个证书?引用自BH:Bluehost确实提供了一个免费的共享SSL证书,可供居住在共享IP地址上的所有帐户使用。有关共享SSL证书的更多信息->您是否可以使用该证书?我也遇到了问题。我今天也遇到了同样的问题,端口
465
上的SMTP在Python中工作得很好,但在C#中超时。对我来说,修复方法是使用端口
587
并使用“boxxx.bluehost.com”作为主机,而不是像OP在他的问题中所做的那样使用“mail.mydomain.com”。这没有什么意义,因为您先设置凭据,然后再重新设置它们……因此NetworkCredential是system.net的一部分,而client.Credentials是system.net.mail的一部分。两个独立的对象。您正在实例化NetworkCredential,然后将其分配给消息。这与两次设置凭据不同。设置“UseDefaultCredentials”时,会清除“credentials”属性中的任何值。因此,您应该在设置此属性后设置凭据。这没有什么意义,因为您先设置凭据,然后再重新设置凭据…因此NetworkCredential是system.net的一部分,而client.credentials是system.net.Mail的一部分。两个独立的对象。您正在实例化NetworkCredential,然后将其分配给消息。这与两次设置凭据不同。设置“UseDefaultCredentials”时,会清除“credentials”属性中的任何值。因此,您应该在设置此属性后设置凭据