Ich habe mich in der letzten Zeit sehr intensiv mit dem Thema Mailen beschäftigt und da haben sich viele Fragen/Probleme ergeben. Jene, zu denen ich ich bis dato keine Antwort oder keine Lösung gefunden habe, möchte ich hier vorstellen und bedanke mich schon jetzt für jede Antwort und Hilfestellung! Es sind insgesamt 8 Fragen/Fragenkomplexe, weil ich die Sache wirklich verstehen möchte. Ich bitte um Entschuldigung für die Größe und Komplexität!
1.) Verstehe ich es richtig, dass Mails, die durch ein PHP Skript mittels mail() gesendet werden, vom Webserver direkt versendet werden und nicht vom Mailserver?
2.) Wenn dem so ist, wieso finde ich dann bei genauerer Untersuchung des Mailheaders bei solchen Eingängen ein by localhost with SMTP? SMTP kann doch nur der Mailserver?! Und was bedeutet hier das localhost? Ist das der Hinweis, dass die Mail vom Webserver und nicht vom Mailserver kommt?
3.) Nachdem ich überall lese, man soll lieber die PHPMailer Bibliothek statt der mail() Funktion verwenden, um Mails zu versenden, habe ich mir das runtergeladen und zum Testen auf den Server gelegt. Das kürzeste und einfachste Handling, das ich dafür gefunden habe, war folgender Code:
// Zuerst Einfügen von Exception.php, OAuth.php, PHPMailer.php, POP3.php und SMTP.php
// Dann das Festlegen von Sendername, Sendermail, Empfängername und Sendermail in entsprechenden Variablen
Das funktioniert wunderbar. Sogar Umlaute im Header und im Body der Mail machen durch die Festlegung auf UTF-8 keine Probleme. So weit, so gut. Das läuft jetzt angeblich über den Mailserver. Wenn dem so ist und somit per SMTP gesendet wird, wozu dient dann die weitere Angabe $mail->isSMTP();?
4.) Auf zB. dieser offiziellen Beipsiel-Seite stehen weitere Aktionen:
Was ist da die richtige Port Angabe für uns bei Domainfactory? Und was genau macht $mail->SMTPDebug?
5.) Wozu soll hier die Verwendung von Username und Passwort gut sein? Es werden keine Mails abgeholt/gelesen, sondern nur von mir selbst versendet. Wozu muss ich mir selbst dann Username und Passwort dazuschreiben? Was ist da der Sinn dahinter? Und vor allem: Ich habe ja mehrere Mailadressen unter meinedomain.example.org eingerichtet. Jede mit anderem Passwort. Soll man da jetzt das Passwort irgendeiner Mailadresse verwenden? Weil die verwendete Absender Mailadresse muss ja, wie ich gesehen habe, nicht einmal existieren. Solange die dazugehörende Domain stimmt, kommen die Mails an. Also was für ein Passwort und wozu?
6.) Kommen wir zur Möglichkeit, die Mail sicher zu versenden. Da habe ich mehrfach gelesen, dass SSL hier deprecated sei und man TLS verwenden möge. Als entsprechenden Code dazu habe ich Folgendes gefunden: $mail->SMTPSecure = "tls". Wieso nicht SSL?
7.) Wenn man im Kundenmenü bei den Mailadressen auf Serveradressen anzeigen klickt, bekommt man ja zum Beispiel sowas zu sehen:
Welche dieser Angaben sind nun wichtig? Bei Verwendung von $mail->SMTPSecure = "tls" muss ich also jetzt (im Gegensatz zu Frage 4) 465 als Portangabe verwenden? Ganz generell muss ich leider feststellen: Ich habe stundenlang alle möglichen Angaben und Parameter variiert, dazu genommen, oder weggelassen. Leider ist es immer so, egal, wie ich es auch anstelle, dass der Mailversand nicht funktioniert Die Fehlermeldung ist in 95% dieselbe: SMTP Error: Could not connect to SMTP host.
Meine Frage also: Wenn ich nun alles kombinieren möchte. Also eine sichere Versendung, SMTP und real existierende sowie nichtexistierende Mailadresse als Absender, was muss dann für uns als Domainfactory Kunden im Skript stehen, damit es zu einem fehlerlosen Mailversand kommt? Kann das bitte wer anhand eines Beispielcodes aufzeigen?
8.) Kommen wir zu meiner derzeit letzten Unklarheit: Beim Testen von selbst versendeten Mails auf Seiten wie zB. mail-tester.com wurde kritisiert, dass SPF und DKIM Einträge fehlen. Ich habe, um ehrlich zu sein, noch nicht wirklich verstanden, wozu diese beiden Angaben gut sind. Zu SPF konnte ich hier bei Domainfactory etwas finden, mit dem SPF-Assistent im Kundenmenü habe ich es auch geschafft, einen entsprechenden Eintrag anzulegen. Würde trotzdem gerne wissen, was das jetzt mehr bringt? Leider habe ich zu DKIM überhaupt nichts gefunden bei Domainfactory. Weder bei den FAQ, noch im Forum. Ich weiß, dass ich das auch im Kundenmenü machen kann und dort statt SPF das txt auswählen muss. Und dass ich dafür einen eigenen und einen Fremdschlüssel brauche oder so ähnlich. Wo ich die herbekomme, wie die aussehen und was das ganze bringt, davon habe ich Null Ahnung. Was genau muss ich da also wo tun jetzt? Ich möchte auch DKIM verwenden, wenn das die Spameinstufung meiner Mails herabsetzt!
Nochmals Danke im Voraus für jede Hilfe!
Der Brombeermilchtrinker
1.) Verstehe ich es richtig, dass Mails, die durch ein PHP Skript mittels mail() gesendet werden, vom Webserver direkt versendet werden und nicht vom Mailserver?
2.) Wenn dem so ist, wieso finde ich dann bei genauerer Untersuchung des Mailheaders bei solchen Eingängen ein by localhost with SMTP? SMTP kann doch nur der Mailserver?! Und was bedeutet hier das localhost? Ist das der Hinweis, dass die Mail vom Webserver und nicht vom Mailserver kommt?
3.) Nachdem ich überall lese, man soll lieber die PHPMailer Bibliothek statt der mail() Funktion verwenden, um Mails zu versenden, habe ich mir das runtergeladen und zum Testen auf den Server gelegt. Das kürzeste und einfachste Handling, das ich dafür gefunden habe, war folgender Code:
// Zuerst Einfügen von Exception.php, OAuth.php, PHPMailer.php, POP3.php und SMTP.php
// Dann das Festlegen von Sendername, Sendermail, Empfängername und Sendermail in entsprechenden Variablen
PHP-Code:
$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';
$mail->setFrom($sender_mail, $sender_name);
$mail->addAddress($S_recipient_mail, $S_recipient_name);
$mail->Subject = 'foo';
$mail->Body = 'bar';
4.) Auf zB. dieser offiziellen Beipsiel-Seite stehen weitere Aktionen:
PHP-Code:
$mail->SMTPDebug = SMTP:: DEBUG_SERVER;
$mail->Host = 'mail.example.com';
$mail->Port = 25;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'yourpassword';
5.) Wozu soll hier die Verwendung von Username und Passwort gut sein? Es werden keine Mails abgeholt/gelesen, sondern nur von mir selbst versendet. Wozu muss ich mir selbst dann Username und Passwort dazuschreiben? Was ist da der Sinn dahinter? Und vor allem: Ich habe ja mehrere Mailadressen unter meinedomain.example.org eingerichtet. Jede mit anderem Passwort. Soll man da jetzt das Passwort irgendeiner Mailadresse verwenden? Weil die verwendete Absender Mailadresse muss ja, wie ich gesehen habe, nicht einmal existieren. Solange die dazugehörende Domain stimmt, kommen die Mails an. Also was für ein Passwort und wozu?
6.) Kommen wir zur Möglichkeit, die Mail sicher zu versenden. Da habe ich mehrfach gelesen, dass SSL hier deprecated sei und man TLS verwenden möge. Als entsprechenden Code dazu habe ich Folgendes gefunden: $mail->SMTPSecure = "tls". Wieso nicht SSL?
7.) Wenn man im Kundenmenü bei den Mailadressen auf Serveradressen anzeigen klickt, bekommt man ja zum Beispiel sowas zu sehen:
Benutzername: [email protected]
Passwort: Wie von Ihnen vergeben
IMAP-Server: imap.bitfeed.net
POP3-Server: pop3.bitfeed.net
SMTP-Server: smtp.meinedomain.example.org
Servername für SSL-Abruf: sslin.df.eu (Zertifikatsdownload: POP3- und IMAP-Zertifikat)
Servername für SSL-Abruf: sslmailpool.ispgateway.de (Zertifikatsdownload: POP3- und IMAP-Zertifikat)
Port für SSL-Abruf bei POP3-Nutzung: 995
Port für SSL-Abruf bei IMAP-Nutzung: 993
Servername für SSL-Versand: sslout.df.eu (Zertifikatsdownload: SMTP-Zertifikat)
smtprelaypool.ispgateway.de (Zertifikatsdownload: SMTP-Zertifikat)
Port für SSL-Versand: 465
Mailservername: Mailcluster2-2
Domainname: meinedomain.example.org
Passwort: Wie von Ihnen vergeben
IMAP-Server: imap.bitfeed.net
POP3-Server: pop3.bitfeed.net
SMTP-Server: smtp.meinedomain.example.org
Servername für SSL-Abruf: sslin.df.eu (Zertifikatsdownload: POP3- und IMAP-Zertifikat)
Servername für SSL-Abruf: sslmailpool.ispgateway.de (Zertifikatsdownload: POP3- und IMAP-Zertifikat)
Port für SSL-Abruf bei POP3-Nutzung: 995
Port für SSL-Abruf bei IMAP-Nutzung: 993
Servername für SSL-Versand: sslout.df.eu (Zertifikatsdownload: SMTP-Zertifikat)
smtprelaypool.ispgateway.de (Zertifikatsdownload: SMTP-Zertifikat)
Port für SSL-Versand: 465
Mailservername: Mailcluster2-2
Domainname: meinedomain.example.org
Meine Frage also: Wenn ich nun alles kombinieren möchte. Also eine sichere Versendung, SMTP und real existierende sowie nichtexistierende Mailadresse als Absender, was muss dann für uns als Domainfactory Kunden im Skript stehen, damit es zu einem fehlerlosen Mailversand kommt? Kann das bitte wer anhand eines Beispielcodes aufzeigen?
8.) Kommen wir zu meiner derzeit letzten Unklarheit: Beim Testen von selbst versendeten Mails auf Seiten wie zB. mail-tester.com wurde kritisiert, dass SPF und DKIM Einträge fehlen. Ich habe, um ehrlich zu sein, noch nicht wirklich verstanden, wozu diese beiden Angaben gut sind. Zu SPF konnte ich hier bei Domainfactory etwas finden, mit dem SPF-Assistent im Kundenmenü habe ich es auch geschafft, einen entsprechenden Eintrag anzulegen. Würde trotzdem gerne wissen, was das jetzt mehr bringt? Leider habe ich zu DKIM überhaupt nichts gefunden bei Domainfactory. Weder bei den FAQ, noch im Forum. Ich weiß, dass ich das auch im Kundenmenü machen kann und dort statt SPF das txt auswählen muss. Und dass ich dafür einen eigenen und einen Fremdschlüssel brauche oder so ähnlich. Wo ich die herbekomme, wie die aussehen und was das ganze bringt, davon habe ich Null Ahnung. Was genau muss ich da also wo tun jetzt? Ich möchte auch DKIM verwenden, wenn das die Spameinstufung meiner Mails herabsetzt!
Nochmals Danke im Voraus für jede Hilfe!
Der Brombeermilchtrinker
Kommentar