メールアドレスが有効か判定する(RFC規約違反を許可)

MSDN「文字列が有効な電子メール形式であるかどうかを検証する」 という記事がありますが、この記事のサンプルは RFC規約違反のアドレスを弾くよう実装してます。しかし

hogehoge@i.sopftbank.jp

という iPhone メールのドメインも弾くので、このままでは使えません。
また、RFC規約違反のメールもシステムで管理したいという要件があったため、MSDN のサンプルを少し改造してみました。ドットの繰り返しや@直前の記号、また i.sopftbank.jp というドメインが通るよう、@直後の英数一文字+ドットも許可してます。

// C#
using System;
using System.Text.RegularExpressions;

public class RegexUtilities
{
   public static bool IsValidEmail(string strIn)
   {
       // Return true if strIn is in valid e-mail format.
       return Regex.IsMatch(strIn, 
              @"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.)|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z.-_])@))" + 
              @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-.\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$"); 
   }
}
' VB.NET
Imports System.Text.RegularExpressions

Module RegexUtilities
   Function IsValidEmail(strIn As String) As Boolean
       ' Return true if strIn is in valid e-mail format.
       Return Regex.IsMatch(strIn, _
               "^(?("")("".+?""@)|(([0-9a-zA-Z]((\.)|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z.-_])@))" + _
               "(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-.\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$")
   End Function
End Module


メアドも突き詰めて調べると、結構奥深いです・・・