summaryrefslogtreecommitdiff
path: root/src/services/validate-email-for-account.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/validate-email-for-account.ts')
-rw-r--r--src/services/validate-email-for-account.ts34
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,
- };
-}