2013-11-01 18 views
7

Được rồi, vì vậy tôi có chương trình này hoạt động như một ứng dụng email cho một công ty, nó xây dựng email cho họ và gửi đi.Gửi Email qua Máy chủ Microsoft Exchange

tôi đã thực hiện tất cả mọi thứ về nó, nhưng khi đi để gửi email, họ nhận được một Mailbox Unavailable. Accessed Denied - Invalid HELO Name

Điều thú vị là mặc dù, tôi sử dụng cùng tên người dùng cho các chứng chỉ mạng và từ phần.

CHỈNH SỬA: Cập nhật mã cho những gì tôi hiện đang sử dụng ... Hiện đang gặp lỗi Failure sending mail.

Đây là lớp học của tôi MailConst.cs:

public class MailConst 
{ 

    /* 
    */ 

    public static string Username = "username"; 
    public static string Password = "password"; 
    public const string SmtpServer = "smtp.domain.co.uk"; 

    public static string From = Username + "@domain.co.uk"; 

} 

và đây là việc sử dụng các biến trong lớp học chính của tôi:

public static void SendMail(string recipient, string subject, string body, string[] attachments) 
    { 


     SmtpClient smtpClient = new SmtpClient(); 
     NetworkCredential basicCredential = new NetworkCredential(MailConst.Username, MailConst.Password, MailConst.SmtpServer); 
     MailMessage message = new MailMessage(); 
     MailAddress fromAddress = new MailAddress(MailConst.From); 

     // setup up the host, increase the timeout to 5 minutes 
     smtpClient.Host = MailConst.SmtpServer; 
     smtpClient.UseDefaultCredentials = false; 
     smtpClient.Credentials = basicCredential; 
     smtpClient.Timeout = (60 * 5 * 1000); 

     message.From = fromAddress; 
     message.Subject = subject + " - " + DateTime.Now.Date.ToString().Split(' ')[0]; 
     message.IsBodyHtml = true; 
     message.Body = body.Replace("\r\n", "<br>"); 
     message.To.Add(recipient); 

     if (attachments != null) 
     { 
      foreach (string attachment in attachments) 
      { 
       message.Attachments.Add(new Attachment(attachment)); 
      } 
     } 

     smtpClient.Send(message); 
    } 

Cũng giống như một mặt lưu ý. Chương trình hoạt động khi sử dụng thông tin đăng nhập của tôi, khi đi qua máy chủ của riêng tôi, không hoạt động khi liên kết nó với máy chủ của họ.

+0

Khi họ sử dụng chương trình này, họ có sử dụng thông tin đăng nhập của riêng họ (hoặc họ có sử dụng bằng chứng xác thực của bạn) không? – Halvard

+0

Ngoài ra, bạn có thấy câu hỏi này không: http://stackoverflow.com/questions/3155242/troubleshooting-mailbox-unavailable-the-server-response-was-access-denied-i – Halvard

+0

Tôi đã sử dụng chương trình với 2 bộ thông tin đăng nhập Hardcoded: của họ và của tôi ... Họ sử dụng một với họ. Có Tôi đã xem câu trả lời đó và không sử dụng như tôi đã nói trong câu hỏi, Tên người dùng và Từ chính xác giống nhau, hãy xem 'MailConst.cs' –

Trả lời

6

Để khắc phục vấn đề này, tôi đã phải sử dụng tham số tùy chọn Domain cho NetworkCredential

Mã của tôi bây giờ trông như thế này:

NetworkCredential basicCredential = new NetworkCredential(MailConst.UserName, MailConst.Password, MailConst.Domain

Trường hợp MailConst.Domain là một chuỗi trỏ đến các Tên miền trao đổi.

Các vấn đề liên quan