
Nun, der Titel ist vielleicht ein bisschen irreführend, aber ich konnte meine Frage nicht besser beschreiben. Ich habe versucht, meinen Computer so einzurichten, dass er E-Mails über die PHP- mail()
Funktion sendet. Es stellte sich heraus, dass das nicht geht. Mein ISP blockiert Port 25, also hatte ich da kein Glück. Dann habe ich aus Neugier Thunderbird mit einem Gmail-Konto eingerichtet und eine Nachricht an ein Hotmail-Konto gesendet. Das hat funktioniert. Ich war neugierig, wie Thunderbird es schafft, die E-Mails zu senden.
Ich habe in der Konfiguration des Gmail-Kontos auf Thunderbird gesehen, dass es einen anderen Port verwendet, nicht 25. Thunderbird scheint diese Werte automatisch festzulegen, was ziemlich nett ist. Vor einiger Zeit wollte ich ein Konto auf Thunderbird einrichten und musste die SMTP-Serverwerte und die IMAP/POP3-Werte manuell eingeben, daher ist es schön zu sehen, dass sie das jetzt automatisch tun.
Ich habe auch die Mail-Protokolle überprüft und nichts hat sich geändert. Ich denke, das ist ein Kinderspiel, da die E-Mail nicht von Sendmail von Postfix, sondern von Gmail gesendet wird. Ist das richtig?
Meine Frage ist nun, wie Thunderbird es schafft, E-Mails zu versenden. Und noch wichtiger: Kann ich etwas Ähnliches tun, um E-Mails aus meinen PHP-Skripten versenden zu können?
Mir ist klar, dass das vielleicht eine „dumme“ Frage ist, aber ich weiß wirklich nichts über dieses Thema.
Und da ich schon frage, wo kann ich etwas darüber lernen? Wird das in der Schule gelehrt? Vielleicht für Informatiker? Welches Buch ist gut geeignet, um in diese schöne Welt von E-Mail, SMTP, POP3 und so weiter einzusteigen?
Antwort1
Um eine E-Mail zu senden, muss Ihr E-Mail-Client (entweder Thunderbird oder Ihr PHP-Skript) eine Verbindung zu einem SMTP-Server herstellen, der die E-Mail über das Internet weiterleiten kann, bis sie schließlich den E-Mail-Server des Empfängers erreicht. Der Standardport für SMTP ist 25, aber manchmal können auch andere Ports wie 587 oder 465 verwendet werden, oft mit einer Art Verschlüsselung wie SSL.
Welcher Port und welche Verschlüsselung zu verwenden ist, hängt vom verwendeten SMTP-Server ab. Thunderbird kann dies, wie Sie erwähnt haben, erkennen, indem es gängige Ports und Protokolle ausprobiert. Um E-Mails über SSL aus einem PHP-Skript zu versenden, können Sie beispielsweise denPEAR MailVerlängerung.
Informationen zur Funktionsweise der E-Mail-Protokolle sollten wahrscheinlich nicht als Allgemeinwissen betrachtet werden.Wikipediabietet natürlich einen Überblick, aber wie Sie sagen, ist ein Buch wahrscheinlich zu empfehlen, wenn Sie tiefer graben möchten.
Antwort2
Ich weiß, dass Sie das gelöst haben, aber dies ist eine Antwort auf die ursprüngliche Frage: Wie versendet Thunderbird E-Mails?
Der Thunderbird-Client enthält Verbindungsinformationen für einige bekannte E-Mail-Anbieter, darunter (wie Sie gesehen haben) Gmail, Hotmail, Yahoo und wahrscheinlich noch einige andere. Die Konfiguration würde wissen:
- Protokoll für eingehende Nachrichten – POP3 oder IMAP (leider unterstützt Thunderbird kein Exchange: Microsoft hat das Exchange-Protokoll nur für Mobilgeräte lizenziert)
- Protokoll für ausgehende Nachrichten - fast immer SMTP
- Ports, an denen sich die Dienste befinden.
- Muss ich mich beim SMTP-Server authentifizieren? (SMTP-Server erfordern heutzutage normalerweise eine Authentifizierung, sonst versenden Sie mehr Spam.)
- Verschlüsselung? TLS/SSL? oder unterstützt es STARTTLS?
Als Sie Ihr Konto erstellt haben, haben Sie Thunderbird gesagt:[email geschützt]". Es erkannte, dass es gmail.com war, und verwendete, was die Konfiguration über das Konto wusste (IMAP/SSL auf imap.gmail.com, SMTP/SSL auf smtp.gmail.com usw.).
Wenn Sie eine E-Mail senden, weiß Thunderbird, dass es sich beim SMTP-Server anmelden, die Verschlüsselung aktivieren und die Nachricht dann mit einemsehr spezifisches Format.
Was das Lernen betrifft, überprüfen Sie dieRFCS, sie haben das letzte Wort darüber, was über die Leitungen läuft. Lesen Sie auch die Dokumentationen zu Postfix, Sendmail und anderen MTAs (Mail Transfer Agents).