1 Star 0 Fork 0

wpkg/mailx

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
attachments.go 2.10 KB
一键复制 编辑 原始数据 按行查看 历史
wen 提交于 2年前 . init
package mailx
import (
"fmt"
"io"
"os"
)
// Attachment 附件结构
type Attachment struct {
Name string
Body
}
// AttachmentList 附件集合
type AttachmentList []*Attachment
// Add 增加附件
func (list *AttachmentList) Add(name string, body Body) {
*list = append(*list, &Attachment{name, body})
}
// BodyFromFile 从本地文件构造附件
func BodyFromFile(fn string) Body {
return func(w io.Writer) (err error) {
var f *os.File
if f, err = os.Open(fn); err != nil {
err = fmt.Errorf("%w", err)
return
}
defer f.Close()
if _, err = io.Copy(w, f); err != nil {
err = fmt.Errorf("%w", err)
}
return
}
}
//// BodyFromUrl 通过url(http)链接下载并构造附件
//func BodyFromUrl(url string) Body {
// var exist bool
// var key string
//
// if cache != nil {
// hash := md5.New()
// hash.Write([]byte(url))
// key = hex.EncodeToString(hash.Sum(nil))
// exist, _ = cache.Exist(key)
// }
//
// if exist {
// return func(w io.Writer) (err error) {
// var fr io.ReadCloser
// if fr, err = cache.OpenRead(key); err != nil {
// err = fmt.Errorf("%w", err)
// return
// }
//
// if _, err = io.Copy(w, fr); err != nil {
// err = fmt.Errorf("%w", err)
// return
// }
//
// return
// }
// }
//
// return func(w io.Writer) (err error) {
// var resp *http.Response
// if resp, err = http.Get(url); err != nil {
// return
// }
// defer resp.Body.Close()
//
// if cache != nil {
// var cw io.WriteCloser
// if cw, err = cache.OpenWrite(key); err != nil {
// err = fmt.Errorf("%w", err)
// }
// w = io.MultiWriter(w, cw)
// }
//
// if _, err = io.Copy(w, resp.Body); err != nil {
// err = fmt.Errorf("%w", err)
// }
//
// return
// }
//}
//
//// SetUrlCacheStore 实现Url缓存
//func SetUrlCacheStore(cacheStore UrlCacheStore) {
// cache = cacheStore
//}
//
//var cache UrlCacheStore
//
//// UrlCacheStore Url下载缓存
//type UrlCacheStore interface {
// // Exist 是否存在
// Exist(key string) (bool, error)
// // OpenRead 打开读
// OpenRead(key string) (io.ReadCloser, error)
// // OpenWrite 打开写
// OpenWrite(key string) (io.WriteCloser, error)
//}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/wpkg/mailx.git
git@gitee.com:wpkg/mailx.git
wpkg
mailx
mailx
main

搜索帮助