Vérifiez l'enregistrement MX de l'adresse e-mail avec java et vérifiez le domaine

Lorsque vous acceptez du courrier sur le WEB Je pense que beaucoup de spams voleront avec les bons mails.

Même si vous essayez de répondre à l'e-mail "Réception terminée!" Après avoir accepté l'e-mail Si vous êtes un partenaire spam Une telle adresse n'existe pas! Chaque jour, je vois une pile de retours d'erreur empilés ... Cela ne peut-il pas être fait? !!

Étant donné que la partie précédant la marque @ dans l'adresse e-mail correspond à l'utilisateur Je ne sais pas avant de l'envoyer

au moins Vérifions si la partie derrière la marque @ est un domaine qui existe vraiment!

Il y en avait autrefois, et on a l'impression qu'il a été construit avec java.

Il n'y a pas d'explication particulière.

import java.util.Hashtable;

import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

public class MXLookup {
	public static void main(String[] args) {
		exec("yahoo.jp");
		exec("yahoo.co.jp");
		exec("126.com");
		exec("127.com");
	}
	private static void exec(String hostname) {
		System.out.println( hostname + " : " + doLookup( hostname ) + "" );
	}
	private static String doLookup( String hostName ) {
		try {
			Hashtable<String,String> env = new Hashtable<String,String>();
			env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
			DirContext ictx = new InitialDirContext( env );
			Attributes attrs = ictx.getAttributes( hostName, new String[] { "MX" });
			Attribute attr = attrs.get( "MX" );
			if( attr == null ){
				return null;
			}
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<attr.size();i++){
				if(sb.length() > 0){
					sb.append(", ");
				}
				sb.append(attr.get(i));
			}
			return sb.toString();
		} catch (NamingException e) {
			return null;
		}
	}

}

Au fait, le système créé Mangez le courrier entrant dans le shell Ce Java est appelé depuis le shell qui est lancé lorsque le courrier est reçu dans C'est comme filtrer les expéditeurs d'e-mails.

c'est tout Pour votre information.

Recommended Posts

Vérifiez l'enregistrement MX de l'adresse e-mail avec java et vérifiez le domaine
Vérifiez le comportement de Java Intrinsic Locks avec bpftrace
Vérifiez le contenu du magasin de certificats Java
Vérifiez le contenu des paramètres avec le levier
Mémo: [Java] Vérifiez le contenu du répertoire
Vérifiez le caractère unique de votre adresse e-mail
[Java] Vérifiez le nombre d'occurrences de caractères
Écrivez ABNF en Java et transmettez l'adresse e-mail
CI l'architecture des applications Java / Kotlin avec ArchUnit
[Java] Vérifiez la version JDK du fichier war construit
Surveillez l'état interne des programmes Java avec Kubernetes
Vérifiez le résultat de l'inférence de paramètre de type générique avec JShell
L'histoire de la création de DTO, semblable à Dao avec Java, SQLite
Remplacez seulement une partie de l'hôte URL par java
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java
Commande pour vérifier le nombre et l'état des threads Java
Vérifier le fonctionnement de deux rôles avec une application de chat
Vérifiez l'état des applications Java sans utiliser d'outils de surveillance
Le piège que l'implémentation par défaut de l'interface Java 8 apporte
[Java] Vérifiez la différence entre orElse et orElseGet avec IntStream
Récapitulatif des valeurs renvoyées par la méthode des caractéristiques Spliterator #java
Assurez-vous de comparer le résultat Java compareTo avec 0
Représentez graphiquement les informations du capteur de Raspberry Pi en Java et vérifiez-les avec un navigateur Web
Changer la version de java installée par SDKMAN lors du déplacement de répertoires
L'histoire de ne pas connaître le comportement de String en passant par Java
Essayez HelloWorld avec la configuration minimale de Heroku Java spring-boot
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
Le point addictif lors de l'authentification de base avec Java URLConnection
[Java] Introduction appropriée par Tenpa people Java Part 0 (règles du code)
Traitez le mouvement détecté par le capteur humain HC-SR501 avec Raspberry Pi 3 et Java
Écraser le téléchargement du fichier avec le même nom avec BOX SDK (java)
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
La version d'Elasticsearch que vous utilisez est-elle compatible avec Java 11?
En vérifiant le fonctionnement de Java sous Linux, j'ai pu comprendre la compilation et la hiérarchie.