C# で電子メールアドレスを検証する

Muhammad Maisam Abbas 2024年2月16日
  1. C# の MailAddress クラスでメールアドレスを検証する
  2. C# の EmailAddressAttribute クラスでメールアドレスを検証する
C# で電子メールアドレスを検証する

このチュートリアルでは、C# で電子メールアドレスを検証する方法について説明します。

C# の MailAddress クラスでメールアドレスを検証する

フォーマットのチェックについて最初に頭に浮かぶのは正規表現です。しかし、正規表現は比較的複雑であり、正規表現を学ぶには多くの時間が必要です。正規表現をすでに知っている場合は、それが最善のアプローチです。このチュートリアルでは、ユーザー定義のアプローチではなく、いくつかの事前定義された方法を使用して、C# で電子メールアドレスを検証します。MailAddress クラスは、C# で電子メールアドレスを表すために使用されます。MailAddress クラスのコンストラクターは文字列を受け取り、それを電子メールアドレスにフォーマットします。MailAddress クラスを使用して、特定の電子メールアドレスが有効かどうかを判断できます。次のコード例は、C# の MailAddress クラスを使用して電子メールアドレスを検証する方法を示しています。

using System;

namespace email_validation {
  class Program {
    static bool IsValidEmail(string email) {
      try {
        var addr = new System.Net.Mail.MailAddress(email);
        return addr.Address == email;
      } catch {
        return false;
      }
    }
    static void Main(string[] args) {
      bool isOk = IsValidEmail("mma @gma.com");
      Console.WriteLine(isOk);
    }
  }
}

出力:

false

電子メールアドレスを文字列として受け取り、電子メールが有効な場合は true を返し、電子メールが無効の場合は false を返す関数 IsValidEmail(email) を定義しました。System.Net.Mail 名前空間内の MailAddress クラスのコンストラクターを使用して、MailAddress クラスの新しいインスタンスを作成しました。次に、MailAddress クラスの Address プロパティをメールアドレスと比較しました。Address が E メールと一致する場合、E メールは有効です。Address が電子メールと一致しない場合、またはプロセス中に例外が発生した場合、電子メールは無効です。

C# の EmailAddressAttribute クラスでメールアドレスを検証する

EmailAddressAttribute クラスは、C# で電子メールアドレスを検証するために使用されます。EmailAddressAttribute クラスの IsValid(email) 関数は、email が有効または null の場合は true を返し、email が無効の場合は false を返します。次のコード例は、C# の EmailAddressAttribute クラスを使用して、電子メールアドレスが有効か無効かを判断する方法を示しています。

using System;
using System.ComponentModel.DataAnnotations;

namespace email_validation {
  class Program {
    static bool validateEmail(string email) {
      if (email == null) {
        return false;
      }
      if (new EmailAddressAttribute().IsValid(email)) {
        return true;
      } else {
        return false;
      }
    }
    static void Main(string[] args) {
      bool isOk = validateEmail("mma@gma.com");
      Console.WriteLine(isOk);
    }
  }
}

出力:

true

メールアドレスを文字列パラメータとして受け取り、メールが有効な場合は true を返し、無効な場合は false を返す関数 validateEmail() を作成しました。validateEmail() 関数は、emailnull の場合、最初に false を返します。EmailAddressAttribute クラスの新しいインスタンスを作成し、email をパラメーターとして EmailAddressAttribute クラスの IsValid() 関数に渡しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp String