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
|
||||
}
|
||||
|
||||
if !ctx.IsAdmin && reqData.From.Name != ctx.UserAccount {
|
||||
response.NewErrorResponse(response.ParamsError, "params error", "").FPrint(w)
|
||||
return
|
||||
}
|
||||
|
||||
if reqData.From.Email != "" {
|
||||
infos := strings.Split(reqData.From.Email, "@")
|
||||
if len(infos) != 2 || !array.InArray(infos[1], config.Instance.Domains) {
|
||||
response.NewErrorResponse(response.ParamsError, "params error", "").FPrint(w)
|
||||
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 == "" {
|
||||
|
@ -383,6 +383,7 @@ func (e *Email) BuildBytes(ctx *context.Context, dkim bool) []byte {
|
||||
log.WithContext(ctx).Fatal(err)
|
||||
}
|
||||
var th mail.InlineHeader
|
||||
th.Header.Set("Content-Transfer-Encoding", "base64")
|
||||
th.SetContentType("text/plain", map[string]string{
|
||||
"charset": "UTF-8",
|
||||
})
|
||||
@ -397,6 +398,7 @@ func (e *Email) BuildBytes(ctx *context.Context, dkim bool) []byte {
|
||||
html.SetContentType("text/html", map[string]string{
|
||||
"charset": "UTF-8",
|
||||
})
|
||||
html.Header.Set("Content-Transfer-Encoding", "base64")
|
||||
w, err = tw.CreatePart(html)
|
||||
if err != nil {
|
||||
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