package interfaces type EmailType string const ( EmailTypeAliyun EmailType = "aliyun" EmailTypeAws EmailType = "aws" EmailTypeMailgun EmailType = "mailgun" EmailTypeSmtp EmailType = "smtp" ) type EmialConfig struct { Smtp *EmailConfigDataSmtp `json:"smtp,omitempty"` // smtp Aws *EmailConfigDataAws `json:"aws,omitempty"` // 亚马逊 Aliyun *EmialConfigDataAliyun `json:"aliyun,omitempty"` // 阿里云 Mailgun *EmialConfigDataMailgun `json:"mailgun,omitempty"` // mailgun } type EmialConfigDataMailgun struct { ApiKey string `json:"api_key"` // mailgun api key Domain string `json:"domain"` // mailgun domain Sender string `json:"sender"` // 发件人 } type EmailConfigDataSmtp struct { IsSSL bool `json:"is_ssl"` // 是否SSL Username string `json:"username"` // 邮箱账号 Password string `json:"password"` // 授权码 Host string `json:"host"` // SMTP 服务器【默认smtpdm.aliyun.com】 Port string `json:"port"` // 发信端口 ReplyTo string `json:"reply_to"` // 【选填】回复地址 // From string `json:"from"` // 【选填】阿里云邮箱发件人 } type EmailConfigDataAws struct { AccessId string `json:"access_id"` // 亚马逊AccessId AccessSecret string `json:"access_secret"` // 亚马逊AccessSecret Region string `json:"region"` // 亚马逊Region Sender string `json:"sender"` // 亚马逊发件人 } type EmialConfigDataAliyun struct { AccessId string `json:"access_id"` // 阿里云AccessId AccessKey string `json:"access_key"` // 阿里云AccessKey Endpoint string `json:"endpoint"` // 区域 默认dm.aliyuncs.com AccountName string `json:"account_name"` // 账号名 ReplyAddress string `json:"reply_address"` // 邮件回复地址 } type ContentType string const ( ContentTypeText ContentType = "text" ContentTypeHTML ContentType = "html" ContentTypeAuto ContentType = "auto" // 自动检测 ) type AttachmentType string const ( AttachmentTypeFile AttachmentType = "file" // 普通附件 AttachmentTypeInline AttachmentType = "inline" // 内嵌图片 ) type Message struct { Form string To []string Cc []string Bcc []string Subject string Body string // 邮件内容 BodyType ContentType // 内容类型:text/html/auto TextBody string // 纯文本版本(可选) ReplyTo string Attachment []Attachment // 普通附件 InlineImage []Attachment // 内嵌图片 } type Attachment struct { Content string // 文件路径或内容 ContentType string // MIME类型 Name string // 文件名 CID string // Content-ID(内嵌图片用) Type AttachmentType // 附件类型 Data []byte // 直接提供字节数据(可选) } type EmailSendRecord struct { AccountName string // 发件人 UpdateTime int64 // 毫秒时间戳 Status EmailSendStatus // 状态 ToUser string // 收件人 Subject string // 邮件主题 ErrorMessage string // 错误信息 } type EmailSendStatus int const ( EmailSendStatusUnknown EmailSendStatus = 0 EmailSendStatusSuccess EmailSendStatus = 1 EmailSendStatusInvalidAddress EmailSendStatus = 2 EmailSendStatusSpam EmailSendStatus = 3 EmailSendStatusFailed EmailSendStatus = 4 )