2012-05-07 5 views
2

BlueHost가 있는데 C#으로 작업 할 수 없습니다. 그것은 그 시간을 말하는BlueHost에서 전자 메일 보내기

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); 

그것은 오류가 발생합니다 : 다음 시도하고 이메일을 보내려면이 코드를 사용

enter image description here

: 난 지금 내가 로그인 페이지 떨어져 세부 사항을 찍은 비록 그것이 충분한 시간 (10 초)을 가지고 있다고해도. 타임 아웃 시간을 지정하지 않아도 잠시 동안 만 앉아 있습니다. SSL을 사용하지 않고 'EnableSsl'을 비활성화하고 포트를 '26'으로 변경하고 호스트를 'mail.embirk.com'으로 변경했으나 작동하지 않습니다. 또한 Microsoft Outlook과 같은 타사 소프트웨어에서도 작동합니다. 어떤 아이디어? 감사.

편집 : 나는 또한 Bluehost의 레벨 II 지원 기술에 문의했으며, 그들은 또한 어려움을 겪고 있다고 말했다. 그들은 썬더 버드 (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

잘못된 방식으로 사용하지 말고 bluehost로 고객 지원부에 문의 해 보았습니까? – MilkyWayJoe

+0

예, Bluehost의 레벨 II 지원 기술에 연락했으며 그들은 또한 어려움을 겪고 있다고 말했습니다. 그들은 썬더 버드 (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"를 설정하면 "Credentials"속성의 값이 지워집니다. 따라서이 속성을 설정 한 후에 자격 증명을 설정해야합니다. –