| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package attachments
- import (
- "encoding/json"
- log "github.com/sirupsen/logrus"
- "pmail/db"
- "pmail/dto"
- "pmail/dto/parsemail"
- "pmail/models"
- "pmail/services/auth"
- )
- func GetAttachments(ctx *dto.Context, emailId int, cid string) (string, []byte) {
- // 获取邮件内容
- var email models.Email
- err := db.Instance.Get(&email, db.WithContext(ctx, "select * from email where id = ?"), emailId)
- if err != nil {
- log.WithContext(ctx).Errorf("SQL error:%+v", err)
- return "", nil
- }
- // 检查权限
- if !auth.HasAuth(ctx, &email) {
- return "", nil
- }
- var atts []parsemail.Attachment
- _ = json.Unmarshal([]byte(email.Attachments), &atts)
- for _, att := range atts {
- if att.ContentID == cid {
- return att.ContentType, att.Content
- }
- }
- return "", nil
- }
- func GetAttachmentsByIndex(ctx *dto.Context, emailId int, index int) (string, []byte) {
- // 获取邮件内容
- var email models.Email
- err := db.Instance.Get(&email, db.WithContext(ctx, "select * from email where id = ?"), emailId)
- if err != nil {
- log.WithContext(ctx).Errorf("SQL error:%+v", err)
- return "", nil
- }
- // 检查权限
- if !auth.HasAuth(ctx, &email) {
- return "", nil
- }
- var atts []parsemail.Attachment
- _ = json.Unmarshal([]byte(email.Attachments), &atts)
- if len(atts) > index {
- return atts[index].Filename, atts[index].Content
- }
- return "", nil
- }
|