diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-07-09 15:05:55 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-07-09 15:05:55 +0900 |
| commit | 75d516011b7169cee6db8aa6e0550d8f84dfde5a (patch) | |
| tree | 7b32ea8fec786a83b55999a13c154bbb756fbbec /packages/backend/src/services | |
| parent | enhance(server): tweak identicon generation (diff) | |
| download | misskey-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.ts | 19 |
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, }; } |