Oliver Beta: Mail mit Login über meinen Web.de-Account?

Hallo,

ich möchte per PHP von meinem lokalen System eine Email über meinen Web.de-Account an meine GMX-Adresse schicken

Mit oder ohne lokalen Mailserver - ist mir egal

D.h. ich kann schon Mails von PHP an den Mailserver (lokal) schicken
(oder auch mit Outlook) und dann mit Outlook wieder abrufen.

Ich kann auch meine Mails von Web.de über den MailServer abrufen - nur versenden geht nicht :-(

Kann man in der Mail()-Funktion ein ConnectStatement zu meinem Web.de-Account aufbauen oder so?

Danke
Olli

  1. Moin!

    ich möchte per PHP von meinem lokalen System eine Email über meinen Web.de-Account an meine GMX-Adresse schicken

    Mit oder ohne lokalen Mailserver - ist mir egal

    Sollte dir aber nicht egal sein. Wenn du lokal den Mailserver benutzt, schickt der direkt die Mail zu GMX (mal gewöhnliche Webserverkonfiguration im Internet vorausgesetzt). Du mußt also von PHP aus den web.de-Mailserver ansprechen und ihm die Mail übergeben.

    Dazu gibts bei web.de nur eine Methode: SMTP mit Authentifizierung (SMTP after POP dürfte noch komplizierter sein). Dazu mußt du dir aber eine Funktion selber stricken (also Socket zu web.de öffnen, SMTP gemäß RFC ablaufen lassen etc.), denn mail() kann das nicht.

    Die Frage ist, was für eine Idee bei dir dahintersteckt: Warum via web.de, warum reicht nicht lokal?

    - Sven Rautenberg

    1. Moin!

      ich möchte per PHP von meinem lokalen System eine Email über meinen Web.de-Account an meine GMX-Adresse schicken

      Mit oder ohne lokalen Mailserver - ist mir egal

      Sollte dir aber nicht egal sein. Wenn du lokal den Mailserver benutzt, schickt der direkt die Mail zu GMX (mal gewöhnliche Webserverkonfiguration im Internet vorausgesetzt). Du mußt also von PHP aus den web.de-Mailserver ansprechen und ihm die Mail übergeben.

      Dazu gibts bei web.de nur eine Methode: SMTP mit Authentifizierung (SMTP after POP dürfte noch komplizierter sein). Dazu mußt du dir aber eine Funktion selber stricken (also Socket zu web.de öffnen, SMTP gemäß RFC ablaufen lassen etc.), denn mail() kann das nicht.

      Die Frage ist, was für eine Idee bei dir dahintersteckt: Warum via web.de, warum reicht nicht lokal?

      • Sven Rautenberg

      Hallo,

      eigentlich möchte ich mit meinem WebServer (Apache) und dem MailServer zusammen mit PHP eMails an jeden schicken.
      Als Absender soll immer meine eMail-Adresse auftauchen.
      Ich habe in PHP einen OnlineShop erstellt (Schulprojekt) und möchte, dass der Kunde eine Bestätigungs-eMail bekommt.
      Dies möcht ich nicht mit dem MailServer simulieren oder so, sondern Ziel ist es, dass die eMail ggf. über meinen Web.de-Account ins Internet geleitet wird....

      Grüsse
      Olli

      1. Re-Moin!

        eigentlich möchte ich mit meinem WebServer (Apache) und dem MailServer zusammen mit PHP eMails an jeden schicken.
        Als Absender soll immer meine eMail-Adresse auftauchen.
        Ich habe in PHP einen OnlineShop erstellt (Schulprojekt) und möchte, dass der Kunde eine Bestätigungs-eMail bekommt.
        Dies möcht ich nicht mit dem MailServer simulieren oder so, sondern Ziel ist es, dass die eMail ggf. über meinen Web.de-Account ins Internet geleitet wird....

        Aha, also hast du einen lokalen Web- und Mailserver, und du willst letzteren nicht benutzen. :) Entspricht nicht so ganz praktischen Tatsachen - wer in echt einen Shop betreibt, kann von seinem Webserver aus eigentlich immer auch Mails versenden. Und auch das Problem mit der Absendeadresse ließe sich irgendwie lösen. Notfalls würdest du einfach ein "Reply-To: deineadresse@web.de" als Header mitschicken im mail().

        Ansonsten mußt du es eben "per Hand" machen. Das ist als Lerneffekt sicherlich auch nicht schlecht, weil man viel über die Kommunikationsabläufe von TCP/IP und höherer Protokolle lernt, aber ultraeinfach ist es sicherlich auch nicht.

        Ich kann dir da auch kein fertiges Programm vorsetzen, sondern eben nur auf Dinge verweisen, die du selbst recherchieren mußt:

        -  Funktionen in PHP, um TCP-Sockets zu öffnen und zu benutzen (z.B. fsockopen - siehe dazu http://www.php.net/manual/en/function.fsockopen.php als Einstieg)

        • Die Definition von SMTP (Dazu gibts irgendeine schöne RFC - suchen bei http://www.rfc.net/)
        • Und schließlich die Definition von SMTP-Authentifizierung (am gleichen Ort, vermutlich eine andere RFC).

        Ansonsten würde ich dir auch nochmal empfehlen, bei web.de genauer zu studieren, was die zu den Zugriffsmöglichkeiten auf ihren SMTP-Server sagen.

        Ach ja, noch eine Warnung: Du mußt zur Authentifizierung das Paßwort für deine Mailbox im Skript angeben. Das ist möglicherweise eine ziemlich dumme Idee, weil jeder, der Zugriff auf den Server hat, auch Zugriff auf dein Paßwort hat, und damit Zugriff auf deine Mailbox (nicht nur zum Senden, auch zum Lesen). Insofern gefällt mir die erste Möglichkeit (Senden vom lokalen Server, Antworten umbiegen mit Reply-To) wesentlich besser.

        - Sven Rautenberg

      2. Hallo Oliver!

        eigentlich möchte ich mit meinem WebServer (Apache) und dem MailServer zusammen mit PHP eMails an jeden schicken.
        Als Absender soll immer meine eMail-Adresse auftauchen.

        http://www.php.net/manual/de/function.mail.php sagt:

        bool mail ( string to, string subject, string message [, string additional_headers])

        eingebaut:

        mail($kunden_email_adresse, "Bestaetigung Ihrer Bestellung", $Artikelliste, "From: o.beta@web.de" );

        und tut dann das, was du gerne haben willst, wenn ich dich richtig verstanden habe.

        Dies möcht ich nicht mit dem MailServer simulieren oder so, sondern Ziel ist es, dass die eMail ggf. über meinen Web.de-Account ins Internet geleitet wird....

        Irgendwie trifft das 'über meinen Account verschicken' nicht so recht den Sachverhalt, SMTP-Server sind eher wie Briefkästen (da ist es ja auch egal in welchen du den Brief einwirfst), die Authetifizierung ist, um im Beispiel zu bleiben, lediglich eine Blockade gegen die Verwendung als Mülleimer.

        Das ganze würde also unnötig komliziert. Ausserdem werden es die wenigsten Kunden bemerken, über welche SMTP-Server die Mail geleitet wurde.
        Der unterschied zu obigem Vorgehen besteht ausschliesslich darin, das als erster Server in den Headern der Mail (die sich normalerweise niemand ansieht) nicht der SMTP-Server des Webservers sondern der von web.de steht.

        Ein Problem bekommst du allerdings beim Testen zuhause: Es kann sein das (d)ein lokaler SMTP-Server aufgrund seiner Einwahl-IP nicht akzeptiert(=als Spammer eingestuft) wird. Dann solltest du den SMTP-Server deines Einwahl-Providers als 'Forwarder' im lokalen SMTP-Server eintragen.

        Gruss,
         Carsten