Carsten Wilke: Mail verschicken, Absender aber mit angeben

Hallo,

ich möchte eine mail per php versenden, nebst Betreff und Nachricht etc.

Aber ich habe als Absender immer "cgi-mailer". Da möchte ich aber eine bestimmte Absender-Adr eintragen.

Ist das möglich, wenn ja wie?

Vielen Dank im voraus, Carsten

  1. Aber ich habe als Absender immer "cgi-mailer". Da möchte ich aber eine bestimmte Absender-Adr eintragen.

    Ist das möglich, wenn ja wie?

    Wichtig ist das "from:" vor der Absenderadresse. Also z.B. so zusammenpfriemeln:
    $email="info@microsoft.com";
    $email="from:".$email;

    Näheres siehe:
    http://www.php-center.de/artikel/show.php3?id=11

    Tschau,

    Jan

    1. Hallo Jan,

      es geht auch einfacher:

      $absender = "Mein Name meine@mail.de";
      mail($empfaenger,$subject,$text,"From: $absender");

      Noch ein Link zum Thema:
      [http://www.php3-forum.de/befehle/mail.htm]

      <img src="http://home.germany.net/100-80215/alex/images/promo/signet.gif" alt="">

      <img src="http://home.germany.net/100-80215/alex/images/promo/akonline.gif" alt="">

      http://www.atomic-eggs.com/selfspezial/daten/101.html

      1. Hallo Jan,

        es geht auch einfacher:

        $absender = "Mein Name meine@mail.de";
        mail($empfaenger,$subject,$text,"From: $absender");

        Noch ein Link zum Thema:
        [http://www.php3-forum.de/befehle/mail.htm]

        <img src="http://home.germany.net/100-80215/alex/images/promo/signet.gif" alt="">

        <img src="http://home.germany.net/100-80215/alex/images/promo/akonline.gif" alt="">

        http://www.atomic-eggs.com/selfspezial/daten/101.html

        Vielen Dank an alle, habs schon eingebaut und es läuft!

        CU, Carsten

  2. Hallo Carsten,

    Aber ich habe als Absender immer "cgi-mailer". Da möchte ich aber eine bestimmte Absender-Adr eintragen.

    Ist das möglich, wenn ja wie?

    Du könntest die Mailfunktion in folgender Form verwenden:

    // mail function
    mail("$recipient", "$subject", "$text", "From: $name <$sender>\nReply-To: $sender");

    $recipient = Emailadresse des Empfängers
    $subjekt = Betreff
    $text = Text (wer hätte das gedacht?)
    dann z.B:
    "From: Carsten Wilke g-wilke@gmx.de\nReply-To: g-wilke@gmx.de"

    Der Absendername ist dann Carsten Wilke, wenn man auf die Mail antwortet, ist sie an g-wilke@gmx.de adressiert.

    Ich hoffe, das hilft dir weiter.

    Viele Grüße,
    Anatol

  3. Aber ich habe als Absender immer "cgi-mailer". Da möchte ich aber eine bestimmte Absender-Adr eintragen.
    Ist das möglich, wenn ja wie?

    Ja. Zunächst einmal mußt du verstehen, wie E-Mail funktioniert. Stell' dir vor,
    du hast einen Briefumschlag (auf dem Absender+Empfänger stehen) sowie
    den eigentlichen Brief (auf dem auch Absender+Empfänger stehen).

    Die Absender-/Empfänger-Daten auf dem Umschlag und im eigentlichen
    Brief können verschieden sein. Wichtig für den Versand der E-Mail ist
    zunächst einmal, was auf dem Briefumschlag steht (der Postbote schaut
    ja auch auf den Briefumschlag).

    Diese Daten, die auf dem Briefumschlag stehen, werden zwischen deinem
    Mailprogramm und dem Mailserver deines Providers ausgetauscht (das nennt
    man den SMTP-Dialog). Hier teilt dein Mailer dem Mailserver mit "Diese Mail
    soll an bjoern@baer.main.de ausgeliefert werden" -- jedoch könnte im Brief selbst
    stehen, dass die E-Mail an president@whitehouse.gov ausgeliefert werden
    sollte.

    Die PHP-Funktion mail(), die dir genannt wurde, kann nur die Daten im Brief
    beeinflussen. Den Absender, den du beschriebst, war der User deines PHP CGI
    Binaries, also der User, unter dem der Prozeß PHP läuft (das ist etwas schwierig
    zu erklären, weil man dazu verstehen muß, dass es unter unixoiden Betriebssystemen,
    z.B. Linux, verschiedene User mit verschiedenen Rechten gibt).

    Es gibt deswegen mehrere Möglichkeiten, das zu beeinflussen. Die erste Möglichkeit,
    die nur die Daten im eigentlichen Brief beeinflußt, wurde dir schon genannt: mail().
    Die zweite Möglichkeit wäre, in der Datei php3.ini (bzw. php.ini ab PHP4) einen
    bestimmten Eintrag zu ändern -- ich vermute aber, dass du keinen Zugriff auf diese
    Datei hast. Die letzte, empfehlenswerte Möglichkeit ist folgendes Stück Programmcode:

    $absender = "deine@mail.adres.se";
    if ($fp=popen("sendmail -t -f $absender","w"))
    {
       fputs($fp,"From: deine@mail.adres.se\n".
                       "To: da@solls.hin\n".
                       "Subject: subject\n\n".
                       "Inhalt der Mail");
       pclose($fp);
    }

    Damit rufst du das Programm sendmail auf, dass den Mail Transport Agent
    darstellt. Ihm übergibst du mit dem Parameter -f den Absender des Briefumschlags.
    Danach schreibst du die eigentliche E-Mail inklusive aller Header und fertig.

    Diese Methode ist empfehlenswert, falls es mal zu Bounces (also nicht-Zustellbarkeit
    von E-Mails) kommt: die Bounce-Meldungen werden nämlich *immer* an den
    Absender des Briefumschlags geschickt -- würdest du also via mail() deine
    Mails verschicken, würden die Bounce-Meldungen in der Mailbox deines
    Systemadministrators auftreffen. Mit der gerade eben beschriebenen Methode
    kannst du dies verhindern.

    Falls du weiterführende Informationen möchtest, schau mal auf
    http://www.php-center.de/faq/ dort gibt es ein sehr ausführliches
    Kapitel zum Thema "Mailen mit PHP".