2017-11-25 22 views
0

현재 특정 시스템의 이메일을 구문 분석하려고 할 때 일부 이메일을 구문 분석하기 위해 패키지 "github.com/emersion/go-imap"을 사용하려고합니다. 가입시 자동 이메일을 보내면 오류가 반환됩니다. 다음 코드를 시도 할 때 "unhandled charset "ascii는"Gmail imap - 본문 내부의 문자 집합 오류

mr, err := mail.CreateReader(r) 

    if err != nil { 
     log.Fatal(err) 
    } 

r이 코드로 할당됩니다

내받은 편지함에 메시지 본문을 얻기 위해 시도
msg := <-messages 
    r := msg.GetBody("BODY[]") 

    if r == nil { 
     log.Fatal("Server didn't returned message body") 
    } 

. 나는이 오류를 일으키는 원인이 무엇인지 확신하지 못한다. 다른 전자 메일을 모두 테스트 해 본 결과,이 코드는 전송 된 특정 전자 메일로 인해 코드가 실패하게된다. 재전송을 시도하고 새 이메일 주소를 시도했습니다. 내가 할 수있는 일이 무엇인지 모르겠다.

답변

0

그 메시지는 message.go에서 비롯된 것으로 보입니다. go-imap은 명시 적으로 지정되었을 때가 아니라 기본이 될 때만 ASCII를 지원합니다. 즉, Content-Type: text/plain이 작동해야합니다. Content-Type: text/plain; charset=ascii. 가장 쉬운 방법은 go-imap을 수정하고 끌어 오기 요청을 제출하는 것입니다.

참고로 많은 오래된 문자 집합에는 둘 이상의 이름이 있습니다. 모든 레거시 문자셋에 대한 지원을 추가 할 필요는 없지만 이 지원되는 경우이 지원되므로 go-imap은 실제로 모든 이름을 알아야합니다. names are kept by IANAthis script은 IANA 목록을 구문 분석하고 별칭 배열을 생성하는 데 사용할 수있는 일종의 것입니다.

+0

괜찮습니다. 고맙습니다. 내가 뭘 할 수 있는지 보여 줄게. –