Разбирать поля электронной почты с помощью Golang

Я пытаюсь разобрать свои электронные письма в Go, и мне нужна помощь.

Как получить доступ к полю Content-type почты?

    cmd, _ = c.Fetch(set, "BODY[HEADER]", "BODY[1]")
    for cmd.InProgress() {
    for _, rsp = range cmd.Data {
        header := imap.AsBytes(rsp.MessageInfo().Attrs["BODY[HEADER]"])
        body := imap.AsString(rsp.MessageInfo().Attrs["BODY[1]"])
        if msg, _ := mail.ReadMessage(bytes.NewReader(header)); msg != nil {

с этим я могу получить доступ к телу и заголовку, но когда электронная почта содержит включенный файл, то с BODY[1] у меня есть все метаданные, а не только чистый текст. Чтобы избежать этого, я могу использовать BODY[1.1], но мне нужно условие Content-Type:[multipart/alternative], и я не могу получить доступ к этому полю.


person Zippelin    schedule 24.12.2015    source источник


Ответы (1)


Хорошо, так что я понял это сам. Но в любом случае, может кому-то это интересно. Вы можете получить доступ к различным полям почты,

msg.Header.Get("Content-type")

а вместо Content-type можно поставить любое название части заголовка.

fmt.println(msg)

чтобы узнать, какие поля имени у него есть

person Zippelin    schedule 24.12.2015