2012-05-07 146 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和東西。有任何想法嗎?謝謝。

編輯: 我還聯繫了Bluehost的二級支持技術,他們說他們也被困住了。他們說他們用Thunderbird試過了,而且一切正常。他們說它可能在尋找證書?

編輯2:

可以這個Outlook註冊表的東西幫助。 (如果運行,這與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

不要錯誤的方式,但你有沒有嘗試聯繫bl​​uehost客戶支持? – MilkyWayJoe

+0

是的,我聯繫了Bluehost的二級支持技術人員,他們說他們也被困住了。他們說他們用Thunderbird試過了,而且一切正常。他們說它可能在尋找證書? – hetelek

+0

來自BH的報價:* BlueHost確實爲共享IP地址上的所有帳戶提供免費的共享SSL證書。有關共享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」時,它將清除「憑據」屬性中的任何值。因此,您應該在設置此屬性後設置憑據 –