mirror of
https://github.com/Jinnrry/PMail.git
synced 2025-02-20 11:43:09 +08:00
parent
223117283b
commit
4d464b0a3c
@ -65,21 +65,21 @@ func Send(ctx *context.Context, w http.ResponseWriter, req *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !ctx.IsAdmin && reqData.From.Name != ctx.UserAccount {
|
|
||||||
response.NewErrorResponse(response.ParamsError, "params error", "").FPrint(w)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if reqData.From.Email != "" {
|
if reqData.From.Email != "" {
|
||||||
infos := strings.Split(reqData.From.Email, "@")
|
infos := strings.Split(reqData.From.Email, "@")
|
||||||
if len(infos) != 2 || !array.InArray(infos[1], config.Instance.Domains) {
|
if len(infos) != 2 || !array.InArray(infos[1], config.Instance.Domains) {
|
||||||
response.NewErrorResponse(response.ParamsError, "params error", "").FPrint(w)
|
response.NewErrorResponse(response.ParamsError, "params error", "").FPrint(w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if !ctx.IsAdmin && infos[0] != ctx.UserAccount {
|
||||||
|
response.NewErrorResponse(response.ParamsError, "params error", "").FPrint(w)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if reqData.From.Email == "" && reqData.From.Name != "" {
|
}
|
||||||
reqData.From.Email = reqData.From.Name + "@" + config.Instance.Domain
|
|
||||||
|
if reqData.From.Email == "" {
|
||||||
|
reqData.From.Email = ctx.UserAccount + "@" + config.Instance.Domain
|
||||||
}
|
}
|
||||||
|
|
||||||
if reqData.From.Email == "" {
|
if reqData.From.Email == "" {
|
||||||
|
@ -383,6 +383,7 @@ func (e *Email) BuildBytes(ctx *context.Context, dkim bool) []byte {
|
|||||||
log.WithContext(ctx).Fatal(err)
|
log.WithContext(ctx).Fatal(err)
|
||||||
}
|
}
|
||||||
var th mail.InlineHeader
|
var th mail.InlineHeader
|
||||||
|
th.Header.Set("Content-Transfer-Encoding", "base64")
|
||||||
th.SetContentType("text/plain", map[string]string{
|
th.SetContentType("text/plain", map[string]string{
|
||||||
"charset": "UTF-8",
|
"charset": "UTF-8",
|
||||||
})
|
})
|
||||||
@ -397,6 +398,7 @@ func (e *Email) BuildBytes(ctx *context.Context, dkim bool) []byte {
|
|||||||
html.SetContentType("text/html", map[string]string{
|
html.SetContentType("text/html", map[string]string{
|
||||||
"charset": "UTF-8",
|
"charset": "UTF-8",
|
||||||
})
|
})
|
||||||
|
html.Header.Set("Content-Transfer-Encoding", "base64")
|
||||||
w, err = tw.CreatePart(html)
|
w, err = tw.CreatePart(html)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
55
server/pop3_server/action_test.go
Normal file
55
server/pop3_server/action_test.go
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
package pop3_server
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
"github.com/Jinnrry/gopop"
|
||||||
|
"github.com/Jinnrry/pmail/config"
|
||||||
|
"github.com/Jinnrry/pmail/db"
|
||||||
|
"github.com/Jinnrry/pmail/utils/context"
|
||||||
|
"github.com/emersion/go-message/mail"
|
||||||
|
"io"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Test_action_Retr(t *testing.T) {
|
||||||
|
config.Init()
|
||||||
|
db.Init("")
|
||||||
|
|
||||||
|
a := action{}
|
||||||
|
session := &gopop.Session{
|
||||||
|
Ctx: &context.Context{
|
||||||
|
UserID: 1,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
got, got1, err := a.Retr(session, 301)
|
||||||
|
|
||||||
|
_, _, _ = got, got1, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_email(t *testing.T) {
|
||||||
|
var b bytes.Buffer
|
||||||
|
|
||||||
|
// Create our mail header
|
||||||
|
var h mail.Header
|
||||||
|
|
||||||
|
// Create a new mail writer
|
||||||
|
mw, _ := mail.CreateWriter(&b, h)
|
||||||
|
|
||||||
|
// Create a text part
|
||||||
|
tw, _ := mw.CreateInline()
|
||||||
|
|
||||||
|
var html mail.InlineHeader
|
||||||
|
|
||||||
|
html.Header.Set("Content-Transfer-Encoding", "base64")
|
||||||
|
w, _ := tw.CreatePart(html)
|
||||||
|
|
||||||
|
io.WriteString(w, "=")
|
||||||
|
|
||||||
|
w.Close()
|
||||||
|
|
||||||
|
tw.Close()
|
||||||
|
|
||||||
|
fmt.Printf("%s", b.String())
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user