mailfile

package module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

README

mailfile

mailfile是一个邮件文件解析库,支持解析eml/msg邮件文件。

Installation

go get -u github.com/mel2oo/mailfile

Example

MSG:
msg, err := msg.New("testdata/complete.msg")
if err != nil {
	return
}

eml.Format().Output()
EML:
eml, err := eml.New("testdata/2.eml")
if err != nil {
	return
}

eml.Format().Output()

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertData

func ConvertData(data []byte, charset string) (string, error)

func DecodeString

func DecodeString(str string, etype string) ([]byte, error)

func ExtractPwd added in v1.0.3

func ExtractPwd(data string, filter *map[string]bool)

func GetSenderIP

func GetSenderIP(headers mail.Header) (ip string, err error)

func ParseContext

func ParseContext(data string) string

解析 带有 =?utf-8?B?bWxlbW9z?= 格式字符串

func ParseFrom added in v1.1.2

func ParseFrom(from string) ([]*mail.Address, error)

func ParsePasswd added in v1.0.3

func ParsePasswd(html, text []byte) []string

func ParseTitle

func ParseTitle(subject string) string

func SundaySearch added in v1.1.6

func SundaySearch(haystack string, needle string) int

字符串匹配

func TrimHTML added in v1.0.3

func TrimHTML(data string) string

Types

type Attachment

type Attachment struct {
	Filename    string    `json:"filename"`
	ContentType string    `json:"content-type"`
	Data        io.Reader `json:"-"`
}

type Embedded

type Embedded struct {
	CID         string    `json:"cid"`
	ContentType string    `json:"content-type"`
	Data        io.Reader `json:"-"`
}

type Message

type Message struct {
	// 邮件头
	// Received段:路由信息,记录了邮件传递过程。
	Headers mail.Header `json:"-"`

	MessageID string `json:"message-id"`

	// 表示邮件建立的时间,既不是发送时间也不是接收时间,是邮件发送方创建邮件的时间。
	Date string `json:"date"`
	// 表示邮件的主题。
	Subject string `json:"subject"`

	// 发送者的ip地址
	SenderAddress string `json:"sender-address"`
	// 表示邮件的实际投递者(只能是一个),
	// 一般由收件方添加,邮件服务商在收到邮件后会将邮件会话里面的实际投递者与信头From字段标识的发件这进行比较,
	// 如不一致则在信头下方加入Sender字段标识邮件实际投递者,但这个字段也可由发件方决定的。
	Sender *mail.Address `json:"sender"`
	// 表示一个或多个邮件的作者,显示在正文的发件人。
	// 由发件方编辑,例如发垃圾的就会将此字段编辑成不存在的地址;发诈骗邮件的就会将此字段编辑成被冒充的邮件地址。
	From []*mail.Address `json:"from"`
	// 表示回复地址,由发件方编辑,希望收件人回复邮件时回复到指定的地址。
	// 一般情况下,如不额外添加Reply-to字段,收件人回复邮件时,将回复到原邮件From字段标识的地址。
	ReplyTo []*mail.Address `json:"reply-to"`

	// 表示邮件的接收地址。
	To []*mail.Address `json:"to"`
	// 表示抄送的邮件地址。
	Cc []*mail.Address `json:"cc"`
	// 表示密送的邮件地址。
	Bcc []*mail.Address `json:"bcc"`

	// 标识了邮件内容的格式
	ContentType string `json:"content-type"`

	// 邮件正文内容
	Body io.Reader `json:"-"`
	Html io.Reader `json:"-"`

	Pwd []string `json:"pwd"`

	// 邮件正文中内嵌文件
	Embeddeds []Embedded `json:"embedded"`
	// 邮件附件
	Attachments []Attachment `json:"attachment"`
	// 邮件附件,子邮件类型
	SubMessage []*Message `json:"sub-message"`
}

func (*Message) Output

func (m *Message) Output()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL