martinli: SMTP oder IMAP mail verschicken nicht mail()

Hallo,
Ich würde gern Mails über SMTP von meiner php Homepage aus verschicken. Ich hab dazu aber nur eine imap anleitung gefunden.
aber auch das funktioniert leider noch nicht.
Habt ihr einen Tip denn ich will ganz bewusst auf mail() verzichten.
Hier mal das, was ich zu IMAP gefunden hab:

$dom="test.de";
$user="testuser";
$psw="passwort";
imap_open ('$dom','$user','$psw');
$an="test@gmx.de";
$betr="test";
$mail="hallo, wie gehts??";

imap_mail ('$an','$betr','$mail');

Viele Grüße
Martin

  1. Hi martinli,

    Habt ihr einen Tip denn ich will ganz bewusst auf mail() verzichten.

    Ich würde dir das PEAR Package Mail empfehlen, das nutze ich auch für den Mailversand über SMTP - funktioniert prima.

    Beim Suchen habe ich gerade auch noch die PEAR Packages Mail_IMAP und Mail_IMAPv2 gefunden, welche mit "Provides a c-client backend for webmail" beschrieben sind - vielleicht lohnt es sich, die auch mal noch anzuschauen, je nach dem, was du vorhast.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Die Stoßstange ist aller Laster Anfang! (Häfft)
    1. Hallo Dennis,
      erst mal danke,
      ich wollte eigentlich nur ganz einfach eine Mail verschicken.
      Wie gesagt möglichst einfach. Und am liebsten hätte ich es natürlich selbst programmiert.
      gibt es da nicht eine funktion, die zumindest mal halb so einfach ist wie mail()??
      Viele Grüße
      Martin

      1. Hallo

        ich wollte eigentlich nur ganz einfach eine Mail verschicken.

        Dafür ist das Protokoll IMAP nicht vorgesehen. Das Versenden von Mails erfolgt über das Protokoll SMTP.

        Wie gesagt möglichst einfach. Und am liebsten hätte ich es natürlich selbst programmiert.
        gibt es da nicht eine funktion, die zumindest mal halb so einfach ist wie mail()??

        Verstehe ich Dich richtig, ist Dir mail() zu einfach? Was ist Dein Problem?

        Freundliche Grüße

        Vinzenz

        1. Tach Vinzenz,
          der normale mail() mailer bleibt meist im spamfilter liegen.
          Das will ich mit smtp umgehen.
          Gruß
          Martin

          1. Hallo Martin,

            der normale mail() mailer bleibt meist im spamfilter liegen.

            wenn Du Deinen Mailserver selbst mit Einwahl bei Deinem Provider betreibst, ja.
            Wenn Du den Mailserver Deines Providers nutzt, normalerweise nein.

            Das will ich mit smtp umgehen.

            bitte schildere doch Dein Szenario etwas genauer. Ich vermute, dass das PEAR-Package, das Dir Dennis in seiner ersten Antwort empfohlen hat, das ist, was Du wirklich willst.

            Freundliche Grüße

            Vinzenz

            1. Hallo;
              Nach vielem Suchen und Hilfe meines Bruders hab ich folgendes funktionierende Skript:

              <?php
              $smtp_server = "smtpserver";
              $port = 25;
              $mydomain = "Domain";
              $username = "Benutzername";
              $password = "Passwort";
              $sender = "absender Mail";
              $recipient = "Empfänger Mail";
              $subject = "Betreff";
              $content = "Nachricht";

              // Initiate connection with the SMTP server
              $handle = fsockopen($smtp_server,$port);
              fputs($handle, "EHLO ".$mydomain."\n");

              // SMTP authorization
              fputs($handle, "AUTH LOGIN\n");
              fputs($handle, base64_encode($username)."\n");
              fputs($handle, base64_encode($password)."\n");
              // Send out the e-mail
              fputs($handle, "MAIL FROM: ".$sender."\n");
              fputs($handle, "RCPT TO: ".$recipient."\n");
              fputs($handle, "DATA\n");
              fputs($handle, "To: ".$recipient."\n");
              fputs($handle, "Subject: ".$subject ."\n");
              fputs($handle, $content."\n");
              fputs($handle, ".\n");

              // Close connection to SMTP server
              fputs($handle, "QUIT\n");
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";
              echo(fgets($handle))."<br>";

              ?>

              Viele Grüße
              Martin

            2. der normale mail() mailer bleibt meist im spamfilter liegen.

              Das passiert dann, wenn Du nicht die richtigen Parameter mitgibst. Ich hatte da zu Anfang auch Probleme, bin aber jetzt soweit, daß Spamassassin 0 Punkte vergibt.

              Falls Deine Parameter korrekt sind, ist ein häufiges Problem, daß Dein Provider möglicherweise die Option -f von sendmail nicht freigeschaltet hat. Dann kannst Du nur unter dem Return-Path Deines Webservers Mails versenden.

              bitte schildere doch Dein Szenario etwas genauer. Ich vermute, dass das PEAR-Package das ist, was Du wirklich willst.

              Ohne es geprüft zu haben, behaupte ich, daß daß PEAR Dein Problem nicht löst. Ich habe es einmal testweise in Betrieb genommen und analysiert. Auch PEAR verwendet letztlich zum Versand die Funktion mail(). Was also mit mail() nicht funktioniert, wird auch mit PEAR nicht funktionieren.

              Ciao,
              Arno

              1. echo $begrüßung;

                Ohne es geprüft zu haben, behaupte ich, daß daß PEAR Dein Problem nicht löst. Ich habe es einmal testweise in Betrieb genommen und analysiert. Auch PEAR verwendet letztlich zum Versand die Funktion mail().

                PEAR_Mail arbeitet nach dem Treiber-Prinzip. Beim Initialisieren mittels Mail::factory() übergibt man den Namen des Treibers (und ggf. noch Parameter).

                Als Treiber stehen zur Verfügung:

                • mail (verwendet mail()),
                • sendmail (übergibt an sendmail),
                • smtp (verwendet Net/SMTP.php aus PEAR) und
                • null (versendet nichts).

                echo "$verabschiedung $name";

  2. Hi,

    imap_open ('$dom','$user','$psw');

    ...

    imap_mail ('$an','$betr','$mail');

    wer ist denn auf die schlaue Idee gekommen? Erstens brauchen Variablen nicht in '' eingefasst werden, und zweitens... Parst PHP überhaupt das $ innerhalb von einfachen Anführungszeichen?

    Probiers mal so:

    imap_open ($dom, $user, $psw);
    ...
    imap_mail ($an, $betr, $mail);

    E7