mirror of
https://github.com/Jinnrry/PMail.git
synced 2025-02-20 11:43:09 +08:00
v2.6.3
支持发件昵称修改
This commit is contained in:
parent
95d4db9498
commit
5db8a8fefd
@ -17,7 +17,8 @@ var lang = {
|
||||
"login": "login",
|
||||
"search": "Search Email",
|
||||
"inbox": "Inbox",
|
||||
"sender": "Sender",
|
||||
"sender": "Sender's Address",
|
||||
"nick_name": "Sender's Nickname",
|
||||
"title": "Title",
|
||||
"date": "Date",
|
||||
"to": "To",
|
||||
@ -128,11 +129,12 @@ var zhCN = {
|
||||
"login": "登录",
|
||||
"search": "搜索邮件",
|
||||
"inbox": "收件箱",
|
||||
"sender": "发件人",
|
||||
"title": "主题",
|
||||
"sender": "发件人地址",
|
||||
"nick_name": "发件人昵称",
|
||||
"title": "邮件主题",
|
||||
"date": "时间",
|
||||
"to": "收件人",
|
||||
"cc": "抄送",
|
||||
"to": "收件人地址",
|
||||
"cc": "抄送人地址",
|
||||
"sender_desc": "发件人",
|
||||
"to_desc": "接收人邮件地址",
|
||||
"cc_desc": "抄送人邮箱地址",
|
||||
|
@ -1,15 +1,38 @@
|
||||
<template>
|
||||
<div id="main">
|
||||
<el-form label-width="100px" :rules="rules" ref="ruleFormRef" :model="ruleForm" status-icon>
|
||||
<el-form-item :label="lang.sender" prop="sender">
|
||||
|
||||
<div style="display: flex;">
|
||||
<el-input style="max-width: 300px" :disabled="!$userInfos.is_admin" v-model="ruleForm.sender" :placeholder="lang.sender_desc" />
|
||||
<div>@</div>
|
||||
<el-select v-model="ruleForm.pickDomain">
|
||||
<el-option :value="item" v-for="item in ruleForm.domains">{{ item }}</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<el-form-item :label="lang.sender" prop="sender">
|
||||
<el-popover trigger="click" :width="600">
|
||||
<template #reference>
|
||||
<div
|
||||
style="border: 1px solid #dcdfe6; border-radius:3px;height: 30px; line-height: 30px; padding: 0 5px 0 5px;">
|
||||
<span style="font-size: 16px; font-weight: bolder;">{{ ruleForm.nickName }}</span>
|
||||
<span> <{{ ruleForm.sender }}@{{ ruleForm.pickDomain }}></span>
|
||||
</div>
|
||||
</template>
|
||||
<template #default>
|
||||
<div style="display: flex; flex-direction:column;">
|
||||
<div style=" margin-bottom: 10px;">
|
||||
<el-form-item :label="lang.sender" prop="sender">
|
||||
<el-input style="max-width: 200px" :disabled="!$userInfos.is_admin"
|
||||
v-model="ruleForm.sender" :placeholder="lang.sender_desc" />
|
||||
<div>@</div>
|
||||
<el-select v-model="ruleForm.pickDomain">
|
||||
<el-option :value="item" v-for="item in ruleForm.domains">{{ item }}</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<el-form-item :label="lang.nick_name" >
|
||||
<el-input style="max-width: 300px" v-model="ruleForm.nickName" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
</el-popover>
|
||||
|
||||
</el-form-item>
|
||||
|
||||
@ -127,12 +150,13 @@ const fileRef = ref();
|
||||
const pickFile = ref();
|
||||
const ruleFormRef = ref()
|
||||
const ruleForm = reactive({
|
||||
nickName: '',
|
||||
sender: '',
|
||||
receivers: '',
|
||||
cc: '',
|
||||
subject: '',
|
||||
domains:[],
|
||||
pickDomain:""
|
||||
domains: [],
|
||||
pickDomain: ""
|
||||
})
|
||||
const fileList = reactive([]);
|
||||
|
||||
@ -145,6 +169,7 @@ const init = function () {
|
||||
ruleForm.sender = res.data.account
|
||||
ruleForm.domains = res.data.domains
|
||||
ruleForm.pickDomain = res.data.domains[0]
|
||||
ruleForm.nickName = res.data.name
|
||||
} else {
|
||||
ElMessage({
|
||||
type: 'error',
|
||||
@ -152,10 +177,11 @@ const init = function () {
|
||||
})
|
||||
}
|
||||
})
|
||||
}else{
|
||||
} else {
|
||||
ruleForm.sender = $userInfos.value.account
|
||||
ruleForm.domains = $userInfos.value.domains
|
||||
ruleForm.pickDomain = $userInfos.value.domains[0]
|
||||
ruleForm.nickName = $userInfos.value.name
|
||||
}
|
||||
|
||||
}
|
||||
@ -257,7 +283,7 @@ const send = function (formEl) {
|
||||
let text = editorRef.value.getText()
|
||||
|
||||
$http.post("/api/email/send", {
|
||||
from: { name: ruleForm.sender, email: ruleForm.sender + "@" +ruleForm.pickDomain },
|
||||
from: { name: ruleForm.nickName, email: ruleForm.sender + "@" + ruleForm.pickDomain },
|
||||
to: objectTos,
|
||||
cc: objectCcs,
|
||||
subject: ruleForm.subject,
|
||||
|
@ -87,6 +87,10 @@ func Send(ctx *context.Context, w http.ResponseWriter, req *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
if reqData.From.Name == "" {
|
||||
reqData.From.Name = ctx.UserName
|
||||
}
|
||||
|
||||
if reqData.Subject == "" {
|
||||
response.NewErrorResponse(response.ParamsError, "邮件标题必填", "邮件标题必填").FPrint(w)
|
||||
return
|
||||
|
@ -6,10 +6,18 @@ import (
|
||||
"github.com/Jinnrry/pmail/db"
|
||||
"github.com/Jinnrry/pmail/hooks/spam_block/tools"
|
||||
"github.com/Jinnrry/pmail/models"
|
||||
"github.com/spf13/cast"
|
||||
"os"
|
||||
)
|
||||
|
||||
func main() {
|
||||
args := os.Args
|
||||
|
||||
var id int
|
||||
if len(args) >= 2 {
|
||||
id = cast.ToInt(args[1])
|
||||
}
|
||||
|
||||
config.Init()
|
||||
err := db.Init("test")
|
||||
if err != nil {
|
||||
@ -27,7 +35,11 @@ func main() {
|
||||
defer file.Close()
|
||||
for {
|
||||
var emails []models.Email
|
||||
db.Instance.Table(&models.Email{}).Where("id > ?", start).OrderBy("id").Find(&emails)
|
||||
if id > 0 {
|
||||
db.Instance.Table(&models.Email{}).Where("id = ?", id).OrderBy("id").Find(&emails)
|
||||
} else {
|
||||
db.Instance.Table(&models.Email{}).Where("id > ?", start).OrderBy("id").Find(&emails)
|
||||
}
|
||||
if len(emails) == 0 {
|
||||
break
|
||||
}
|
||||
@ -39,6 +51,10 @@ func main() {
|
||||
}
|
||||
//fmt.Printf("0 \t%s %s\n", email.Subject, trim(trimHtml(email.Html.String)))
|
||||
}
|
||||
if id > 0 {
|
||||
break
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user