Eine Mailadresse bezeichnet einen Nachrichtenempfänger. Eine Message-ID bezeichnet eine Nachricht und wird häufig in spitzen Klammern dargestellt. Beide können ein @-Zeichen enthalten; das Zeichen allein reicht daher nicht zur Unterscheidung.
Ein bewusst begrenztes Beispiel
use strict;
use warnings;
my $s = shift // '';
if ($s =~ /\A<[^\s<>\@]+\@[^\s<>\@]+>\z/) {
print "Message-ID-Muster\n";
} elsif ($s =~ /\A[^\s<>\@]+\@[^\s<>\@]+\z/) {
print "Adressmuster\n";
} else {
print "Nicht eingeordnet\n";
}
Das ist ein eigenständiges Lernbeispiel. Es erkennt einfache Formen und prüft weder Erreichbarkeit noch sämtliche erlaubten Syntaxvarianten. Es stellt keine Netzwerkverbindung her.
Testfälle
person@example.invalid passt zum einfachen Adressmuster; <message@example.invalid> zum einfachen Message-ID-Muster. Ein leerer Text oder ein Satz mit einer darin enthaltenen Adresse wird nicht eingeordnet. Nutze diese Unterschiede, um den Zweck deiner eigenen Prüfung präzise zu bestimmen.