This commit is contained in:
syuilo 2019-07-04 21:07:02 +09:00
parent f379a721f1
commit 16b81fff38
4 changed files with 56 additions and 0 deletions

View File

@ -26,6 +26,7 @@ unreleased
* APNGサポート * APNGサポート
* アバターファイル選択でimage以外は表示しないように * アバターファイル選択でimage以外は表示しないように
* データベース手動バキューム機能 * データベース手動バキューム機能
* メールサーバー設定が正しいか確認できるように
* ピン止めの上限に達したときエラーを表示するように * ピン止めの上限に達したときエラーを表示するように
* AP: attributedTo, to, cc が Array や Object のパターンに対応 * AP: attributedTo, to, cc が Array や Object のパターンに対応
* AP: object type が Audio, Document, Image, Page, Video のパターンに対応 * AP: object type が Audio, Document, Image, Page, Video のパターンに対応

View File

@ -1389,6 +1389,8 @@ admin/views/instance.vue:
smtp-auth: "SMTP認証を行う" smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー" smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード" smtp-pass: "SMTPパスワード"
test-email: "テスト"
test-email-to: "テストメールの送信先アドレス"
serviceworker-config: "ServiceWorker" serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする" enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。" serviceworker-info: "プッシュ通知を行うには有効する必要があります。"

View File

@ -129,6 +129,7 @@
<ui-input v-model="smtpPass" type="password" :with-password-toggle="true" :disabled="!enableEmail || !smtpAuth">{{ $t('smtp-pass') }}</ui-input> <ui-input v-model="smtpPass" type="password" :with-password-toggle="true" :disabled="!enableEmail || !smtpAuth">{{ $t('smtp-pass') }}</ui-input>
</ui-horizon-group> </ui-horizon-group>
<ui-switch v-model="smtpSecure" :disabled="!enableEmail">{{ $t('smtp-secure') }}<template #desc>{{ $t('smtp-secure-info') }}</template></ui-switch> <ui-switch v-model="smtpSecure" :disabled="!enableEmail">{{ $t('smtp-secure') }}<template #desc>{{ $t('smtp-secure-info') }}</template></ui-switch>
<ui-button @click="testEmail()">{{ $t('test-email') }}</ui-button>
</template> </template>
</section> </section>
<section> <section>
@ -424,6 +425,32 @@ export default Vue.extend({
}); });
}, },
async testEmail() {
const { canceled, result: to } = await this.$root.dialog({
title: this.$t('test-email-to'),
input: {
type: 'email',
},
showCancelButton: true
});
if (canceled) return;
this.$root.api('admin/send-email', {
to: to,
subject: 'Test email',
text: 'Yo'
}).then(x => {
this.$root.dialog({
type: 'success',
splash: true
});
}).catch(e => {
this.$root.dialog({
type: 'error',
text: e
});
});
},
updateMeta() { updateMeta() {
this.$root.api('admin/update-meta', { this.$root.api('admin/update-meta', {
maintainerName: this.maintainerName, maintainerName: this.maintainerName,

View File

@ -0,0 +1,26 @@
import $ from 'cafy';
import define from '../../define';
import { sendEmail } from '../../../../services/send-email';
export const meta = {
tags: ['admin'],
requireCredential: true,
requireModerator: true,
params: {
to: {
validator: $.str,
},
subject: {
validator: $.str,
},
text: {
validator: $.str,
},
}
};
export default define(meta, async (ps) => {
await sendEmail(ps.to, ps.subject, ps.text);
});