summaryrefslogtreecommitdiff
path: root/packages/backend/src/services
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-07-09 15:05:55 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-07-09 15:05:55 +0900
commit75d516011b7169cee6db8aa6e0550d8f84dfde5a (patch)
tree7b32ea8fec786a83b55999a13c154bbb756fbbec /packages/backend/src/services
parentenhance(server): tweak identicon generation (diff)
downloadmisskey-75d516011b7169cee6db8aa6e0550d8f84dfde5a.tar.gz
misskey-75d516011b7169cee6db8aa6e0550d8f84dfde5a.tar.bz2
misskey-75d516011b7169cee6db8aa6e0550d8f84dfde5a.zip
enhance: make active email validation configurable
Diffstat (limited to 'packages/backend/src/services')
-rw-r--r--packages/backend/src/services/validate-email-for-account.ts19
1 files changed, 11 insertions, 8 deletions
diff --git a/packages/backend/src/services/validate-email-for-account.ts b/packages/backend/src/services/validate-email-for-account.ts
index 132168fb31..b5fa99b935 100644
--- a/packages/backend/src/services/validate-email-for-account.ts
+++ b/packages/backend/src/services/validate-email-for-account.ts
@@ -1,34 +1,37 @@
import { validate as validateEmail } from 'deep-email-validator';
import { UserProfiles } from '@/models/index.js';
+import { fetchMeta } from '@/misc/fetch-meta.js';
export async function validateEmailForAccount(emailAddress: string): Promise<{
available: boolean;
reason: null | 'used' | 'format' | 'disposable' | 'mx' | 'smtp';
}> {
+ const meta = await fetchMeta();
+
const exist = await UserProfiles.countBy({
emailVerified: true,
email: emailAddress,
});
- const validated = await validateEmail({
+ const validated = meta.enableActiveEmailValidation ? await validateEmail({
email: emailAddress,
validateRegex: true,
validateMx: true,
validateTypo: false, // TLDを見ているみたいだけどclubとか弾かれるので
validateDisposable: true, // 捨てアドかどうかチェック
validateSMTP: false, // 日本だと25ポートが殆どのプロバイダーで塞がれていてタイムアウトになるので
- });
+ }) : { valid: true };
const available = exist === 0 && validated.valid;
return {
available,
reason: available ? null :
- exist !== 0 ? 'used' :
- validated.reason === 'regex' ? 'format' :
- validated.reason === 'disposable' ? 'disposable' :
- validated.reason === 'mx' ? 'mx' :
- validated.reason === 'smtp' ? 'smtp' :
- null,
+ exist !== 0 ? 'used' :
+ validated.reason === 'regex' ? 'format' :
+ validated.reason === 'disposable' ? 'disposable' :
+ validated.reason === 'mx' ? 'mx' :
+ validated.reason === 'smtp' ? 'smtp' :
+ null,
};
}