C# - отправка электронного письма из 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.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 и прочее. Есть идеи? Благодарю.
РЕДАКТИРОВАТЬ: Я также связался с технологией поддержки уровня II в Bluehost, и они сказали, что они также находятся в тупике. Они сказали, что попробовали это с Thunderbird, и все заработало. Они сказали, что может искать сертификат?
РЕДАКТИРОВАТЬ 2:
Может ли это помочь в реестре Outlook? (это работает с Outlook, если работает).
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\OMI Account Manager\Accounts\steve@embirk.com]
"DCEmail"=dword:00000002
"IMAP Server"="box263.bluehost.com"
"IMAP Port"=dword:000003e1
"SMTP Server"="box263.bluehost.com"
"SMTP Port"=dword:000001d1
"Connection Type"=dword:00000003
"IMAP User Name"="steve@embirk.com"
"SMTP Display Name"="steve@embirk.com"
"SMTP Email Address"="steve@embirk.com"
"SMTP Reply To Email Address"="steve@embirk.com"
"SMTP Organization Name"=""
"Account Name"="steve@embirk.com"
"IMAP Timeout"=dword:0000003c
"SMTP Timeout"=dword:0000003c
"IMAP Secure Connection"=dword:00000001
"IMAP Skip Account"=dword:00000000
"IMAP Prompt for Password"=dword:00000001
"SMTP User Name"="steve@embirk.com"
"SMTP Use Sicily"=dword:00000002
"SMTP Secure Connection"=dword:00000001
"SMTP Split Messages"=dword:00000000
"SMTP Prompt for Password"=dword:00000000
"IMAP Root Folder"=""
"IMAP Polling"=dword:00000001
"IMAP Poll All Folders"=dword:00000001
"IMAP Dirty"=dword:00000000
1 ответ
Я бы попытался объявить учетные данные за пределами клиентского блока и назначить их учетным данным клиента.
На самом деле избавиться от блока в целом.
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