2014-03-19 1 views
1

연락처 추가를 위해 .vcf 파일이있는 iPhone 사용자에게 전자 메일을 보내야합니다. 문제는 연락처 이름에 움라우트 기호가 있고 잘못 표시된다는 것입니다. 또한 이메일 본문에 동일한 텍스트를 보내거나 메모장에서 vcf 파일을 열면 심볼이 올바르게 표시됩니다.iPhone v-card의 Umlaut

public void SendEmail(string to, string subject, string body) 
    { 
     using (var message = new MailMessage()) 
     { 
      message.To.Add(new MailAddress(to)); 
      message.Subject = subject; 
      message.SubjectEncoding = Encoding.UTF8; 
      message.BodyEncoding = Encoding.UTF8; 
      message.HeadersEncoding = Encoding.UTF8; 
      using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(body))) 
      { 
       string attachamentName = string.Format("{0}.vcf", subject); 
       Attachment attachment = new Attachment(stream, MediaTypeNames.Application.Octet) { Name = attachamentName }; 
       attachment.ContentDisposition.DispositionType = DispositionTypeNames.Attachment; 
       message.Attachments.Add(attachment); 

       using (var client = new SmtpClient()) 
       { 
        client.Send(message); 
       } 
      } 
     } 
    } 

incorrect v-card http://clip2net.com/clip/m299434/1395230200-clip-46kb.jpg the same text in the body http://clip2net.com/clip/m299434/1395230423-clip-63kb.jpg

누군가가 나를 도와 주시겠습니까?

업데이트 : 죄송합니다. 코드 샘플을 편집해야합니다. 실수로 잘못된 것을 제출했습니다.

업데이트 # 2 : Outlook은 또한 움라우트를 인식하지 못합니다.

UPDATE # 3 : 전자 메일

+0

어떤 플랫폼에서 _to_ iPhone 사용자에게 이메일을 보내시겠습니까? –

+0

C# 응용 프로그램 –

+0

에서 첨부 파일의 본문을 게시 할 수 있습니까? –

답변

0

를 보내기위한 추가 전체 코드가 변경보십시오 : 그냥 다른 곳에서 읽을

BEGIN:VCARD\r\nVERSION:2.1\r\nN;CHARSET=LATIN1:Fältskog;Agnetha\r\nFN;CHARSET=LATIN1:Agnetha Fältskog\r\nORG:\r\nTITLE:\r\nEND:VCARD 

것은 - 형식은 각 필드에이 CHARSET 태그를 필요로 보이는, 그리고 utf-8이 아닌 LATIN1 또는 iso-8859-1 문자 집합이 지정되어야합니다.

+0

불행히도,이 문자 집합 중 어느 것도 작동하지 않습니다. 여전히 연락처에 잘못된 기호가 있습니다. –

+0

@ChrisBallard Latin1 대신 UTF-8을 사용할 수없는 이유가 없습니다. 'Ä' **는 유니 코드의 일부입니다 :'U + 00C4'. – ANeves

0

는 예상대로, 가 작동합니다 움라우트와 필드 CHARSET-태그가 필요하지 않습니다

VERSION:2.1\r\n 

그 후

VERSION:3.0\r\n 

에 변경하려고합니다.