diff options
Diffstat (limited to 'src/services/validate-email-for-account.ts')
| -rw-r--r-- | src/services/validate-email-for-account.ts | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/src/services/validate-email-for-account.ts b/src/services/validate-email-for-account.ts deleted file mode 100644 index 1d039fb263..0000000000 --- a/src/services/validate-email-for-account.ts +++ /dev/null @@ -1,34 +0,0 @@ -import validateEmail from 'deep-email-validator'; -import { UserProfiles } from '@/models'; - -export async function validateEmailForAccount(emailAddress: string): Promise<{ - available: boolean; - reason: null | 'used' | 'format' | 'disposable' | 'mx' | 'smtp'; -}> { - const exist = await UserProfiles.count({ - emailVerified: true, - email: emailAddress, - }); - - const validated = await validateEmail({ - email: emailAddress, - validateRegex: true, - validateMx: true, - validateTypo: false, // TLDを見ているみたいだけどclubとか弾かれるので - validateDisposable: true, // 捨てアドかどうかチェック - validateSMTP: false, // 日本だと25ポートが殆どのプロバイダーで塞がれていてタイムアウトになるので - }); - - 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, - }; -} |