2012-05-07 4 views
2

У меня есть BlueHost, и я не могу заставить это работать с C#. Я взял детали сразу страницы, на которой я вход в систему:C# - Отправка электронной почты от BlueHost

enter image description here

Я затем использовать этот код, чтобы попытаться отправить по электронной почте:

MailMessage message = new MailMessage 
{ 
    From = new MailAddress("[email protected]", "[email protected]") 
}; 
message.IsBodyHtml = false; 
message.To.Add("[email protected]"); 
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("[email protected]", "myPassword"), 
    Timeout = 10000, 
    UseDefaultCredentials = false 
}; 
client.Send(message); 

Он выдает сообщение об ошибке сказав, что раз , хотя у него много времени (10 секунд). Даже если я не стану тайм-аутом, тогда он просто сидит некоторое время. Я также пробовал это без SSL, отключив «EnableSsl», изменив порт на «26» и изменив хост на «mail.embirk.com», но это также не работает. Кроме того, это работает с сторонним программным обеспечением, таким как Microsoft Outlook и т. Д. Есть идеи? Благодарю.

EDIT: Я также связался с техникой поддержки уровня II в Bluehost, и они сказали, что они также сильно запятнаны. Они сказали, что попробовали это с Thunderbird, и все это сработало. Они сказали, что он может искать сертификат?

EDIT 2:

Может этот реестр Перспективы вещь помощь. (это работает с Outlook, если он запущен).

REGEDIT4 

[HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\OMI Account Manager\Accounts\[email protected]] 
"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"="[email protected]" 
"SMTP Display Name"="[email protected]" 
"SMTP Email Address"="[email protected]" 
"SMTP Reply To Email Address"="[email protected]" 
"SMTP Organization Name"="" 
"Account Name"="[email protected]" 
"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"="[email protected]" 
"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 
+2

Не принимайте это неправильно, но попробовали ли вы обратиться в службу поддержки на Bluehost? – MilkyWayJoe

+0

Да, я связался с техникой поддержки уровня II в Bluehost, и они сказали, что они тоже сильно обеспокоены. Они сказали, что попробовали это с Thunderbird, и все это сработало. Они сказали, что он может искать сертификат? – hetelek

+0

Цитата из BH: * Bluehost предоставляет бесплатный общий SSL-сертификат, доступный для всех учетных записей, находящихся на общем IP-адресе. Для получения дополнительной информации об общем SSL-сертификате * -> https://my.bluehost.com/cgi/help/473 – MilkyWayJoe

ответ

0

Я бы попытался объявить учетные данные вне клиентского блока и присвоить его учетным данным клиента.

На самом деле избавиться от блока в целом.

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


client.Credentials = myCred; 
client.port = 465, 
client.Host = "box263.bluehost.com", 
client.EnableSsl = true, 
client.Credentials = new NetworkCredential("[email protected]", "myPassword"), 
client.Timeout = 10000, 
client.UseDefaultCredentials = false 
+2

Это не имеет смысла, поскольку вы сначала устанавливаете учетные данные, а затем снова устанавливаете их ... – hetelek

+0

Итак, NetworkCredential является частью system.net, а client.Credentials является частью System.Net.Mail. Два отдельных объекта. Вы создаете экземпляр NetworkCredential и затем присваиваете его сообщению. Это не то же самое, что устанавливать учетные данные дважды. –

+0

, когда вы установите «UseDefaultCredentials», он уничтожит любое значение в свойстве «Учетные данные». Таким образом, вы должны установить учетные данные ПОСЛЕ того, как вы установили это свойство –

Смежные вопросы