2012-06-23 2 views
0

제목에서 알 수 있듯이 ASP.net 웹 응용 프로그램에서 첨부 파일없이 전자 메일을 보내고 있지만 이상하게도 전자 메일 본문은 별도의 HTML 파일로 첨부됩니다. 내가 HTML 파일을 클릭 할 때와 같은 빈 이메일은 본체에서 독립 실행 형 HTML 파일로 작성한 모든 내용을 별도의 창에 열어 본 것처럼, 전자 메일과 같은 일부 포털에 전자 메일을 보낼 때만 발생하지만 보내면 Gmail 또는 핫메일 주소를 입력하면 전자 메일이 첨부 파일과 본문 텍스트없이 완벽하게 표시됩니다.전자 메일 ASP.net에서 HTML 첨부 파일로 이동 중

내 이메일 코드는

public bool sendMail(string messageSubject, System.Net.Mail.MailAddress fromEmailAddress, System.Net.Mail.MailAddress toEmailAddress, string source_id, string messageText) 
    { 
     System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); 
     mail.IsBodyHtml = true; 
     mail.Subject = messageSubject; 
     mail.From = fromEmailAddress; 
     mail.To.Add(toEmailAddress); 
     mail.Body = messageText; 

     SmtpClient relayServer = new SmtpClient(); 

     List<KeyValuePair<string, string>> commandParameters = new List<KeyValuePair<string,string>>(); 
     commandParameters.Add(new KeyValuePair<string,string>("@source_id", source_id)); 
     DataTable sourcesTable = SQLSelect("SELECT * FROM LogiCrmSources WHERE source_id = @source_id", commandParameters); 

     relayServer.Host = sourcesTable.Rows[0]["source_smtp"].ToString(); 
     relayServer.Port = Convert.ToInt16(sourcesTable.Rows[0]["source_smtp_port"].ToString()); 
     if (relayServer.Port == 25) 
     { 
      relayServer.EnableSsl = false; 
     } 
     else 
     { 
      relayServer.EnableSsl = true; 
     } 
     relayServer.Credentials = new System.Net.NetworkCredential(sourcesTable.Rows[0]["source_email"].ToString(), sourcesTable.Rows[0]["source_password"].ToString()); 
     try 
     { 
      relayServer.Send(mail);     
      return true; 
     } 
     catch(SmtpFailedRecipientException exp) 
     { 
      return false; 
     } 
    } 

답변

1

모든 클라이언트가 제대로 HTML 이메일을 처리 할 수있다. 예를 들어 Gmail은 사용자가 언급 한 포털이 할 수없는 반면. 이 경우 전자 메일 본문이 첨부 파일로 전송됩니다.

+0

오케이 ... mail.AlternateViews를 사용하여 별도의 HTML 파일을 보내지 않으려면 호환성을 추가해야합니까? 포털의 경우 일반 텍스트보기 만 표시하고 gmail/hotmail의 경우 HTML을 표시하므로 달성 할 수 있습니까? 감사. – Ahmed

관련 문제