X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Femail%2FEmailProvider.java;h=6834d461d0060c850438491de3c5246995c4f2a9;hp=ea6679cd1a98e0c878173c13c35d770999eea427;hb=680b03f826182ea5d743b9fa6bc4b5b16e001e10;hpb=f97a9d4028195b328b7ff4267b7b4d893eee8995 diff --git a/src/org/cacert/gigi/email/EmailProvider.java b/src/org/cacert/gigi/email/EmailProvider.java index ea6679cd..6834d461 100644 --- a/src/org/cacert/gigi/email/EmailProvider.java +++ b/src/org/cacert/gigi/email/EmailProvider.java @@ -22,6 +22,7 @@ import javax.net.ssl.SSLSocketFactory; import org.cacert.gigi.crypto.SMIME; import org.cacert.gigi.database.GigiPreparedStatement; import org.cacert.gigi.util.DNSUtil; +import org.cacert.gigi.util.DomainAssessment; public abstract class EmailProvider { @@ -71,10 +72,20 @@ public abstract class EmailProvider { public static final String FAIL = "FAIL"; - public static final Pattern MAIL = Pattern.compile("^([a-zA-Z0-9])+([a-zA-Z0-9\\+\\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\\._-]+)+$"); + private static final String MAIL_P_RFC_WORD = "[A-Za-z0-9\\+\\.!#$%&'*/=?^_`|~{}-]+"; + + private static final String MAIL_P_RFC_LOCAL = MAIL_P_RFC_WORD + "(?:\\." + MAIL_P_RFC_WORD + ")*"; + + private static final String MAIL_P_RFC_LABEL = "(?!(?!xn)..--|-)(?:[A-Za-z0-9-]+)(?