Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP mail

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP mail

    Hallo,

    ich habe ein kleines (großes) Problem mit der mail() Funktion in php.

    Ich habe zwei Skripte, die eigentlich identisch aufgebaut sind. Mein Problem ist, dass das eine Skript funktioniert und ich eine Mail bekomme, das andere aber nicht.
    Der größte Unterschied ist die Länge der Nachricht. Bei der funktionierenden Funktion sind es 8 Zeilen, bei der nicht funktionierenden sind es 185 Zeilen.

    Gibt es eine Maximallänge bei der mail()? Dazu habe ich bisher nichts gefunden.
    Ich habe auch schon einen wordwrap gemacht, der nach 69 Zeichen umbricht, bekomme aber trotzdem keine Mail.

    Grüße
    Reyes

  • #2
    Code dazu wäre ganz gut

    + http://php-de.github.io/jumpto/mail-class/
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #3
      PHPMailer

      Kommentar


      • #4
        Der Code vom funktionierenden Skript:
        PHP-Code:
        $subject "Betreff";
        $nachricht "Hallo " $Vorname " " $Nachname .", \n
        Willkommen bei ... "
        ;
        mail($Email$subject$nachricht'From xxx@xxx.de'); 
        In der Nachricht sind noch ein paar Zeilen mehr.

        Der Code der nicht funktioniert:
        PHP-Code:
        $mail 'xxx@xxx.de';
        $subject "Anamnese Input $vorname $nachname";
        $mess "
        <h2>Profil</h2> \n
        Nachname: "
        .$nachname."\n
        Vorname: "
        .$vorname."\n
        Geburtsdatum: "
        .$geb."\n
        "
        ;
        $nachricht wordwrap($mess65"\n"false);                                                
        mail($mail$subject$nachricht'From: xxx@xxx.de'); 
        Hier auch ein paar Zeilen mehr.

        Kommentar


        • #5
          HTML-Dateien kann man so nicht vermailen. Nimm statt mail() den PHPmailer.

          Bau dir eine ordentliche HTML-Datei mit Doctype und allen Headern und setz an die Stellen, an die du Daten einfügen willst, Platzhalter. Z.B. so:
          Code:
          Nachname: [nachname]<br />
          Vorname: [vorname]
          Die speicherst du dir auf den Webspace ab. Dein Script liest die Datei dann ein mit
          PHP-Code:
          $html file_get_contents('vorlage.html'); 
          und du ersetzt die Platzhalter mit den Daten, str_replace() oder strtr()

          Dann übergibst du den fertigen HTML-Text an den PHPmailer.
          [PHP]if ($var != 0) {
          $var = 0;
          }[/PHP]

          Kommentar


          • #6
            Wie meinst du das mit HTML Dateien mailen? Wegen dem <h2> Tag?

            Aktuell habe ich den PHPMailer, bekomme aber weder Email noch Fehlermeldung.

            Mein Code ist:
            PHP-Code:
            require 'phpmailer/class.phpmailer.php';
            $mail = new PHPMailer;
            $mail->isSMTP();
            $mail->Host 'xxx';
            $mail->SMTPAuth true;                            
            $mail->Username 'xxx';                
            $mail->Password 'xxx';                        
            $mail->SMTPSecure 'tls';                   
            $mail->From 'xxx';
            $mail->FromName 'xxx';
            $mail->addAddress('xxx@xxx.de''xxx xxx');
            $mail->WordWrap 50;                           
            $mail->isHTML(true);                                 
            $mail->Subject $subject;
            $mail->Body    $mess;
            $mail->AltBody $mess;
                    
            if(!
            $mail->send()) {
            echo 
            'Message could not be sent.';
            echo 
            'Mailer Error: ' $mail->ErrorInfo;
            } else {
            echo 
            'Message has been sent';

            Ich gehe davon aus, dass mein PHP Mailer nicht richtig geladen ist wenn ich keine Fehlermeldung bekomme? Wie kann ich überprüfen ob er eingebunden ist? Kann ich mit einem relativen Pfad arbeiten (wie ich es habe) oder muss der Pfad absolut sein?

            Kommentar


            • #7
              Zitat von Reyes Beitrag anzeigen
              Der Code vom funktionierenden Skript:
              PHP-Code:
              $subject "Betreff";
              $nachricht "Hallo " $Vorname " " $Nachname .", \n
              Willkommen bei ... "
              ;
              mail($Email$subject$nachricht'From xxx@xxx.de'); 
              In der Nachricht sind noch ein paar Zeilen mehr.

              Der Code der nicht funktioniert:
              PHP-Code:
              $mail 'xxx@xxx.de';
              $subject "Anamnese Input $vorname $nachname";
              $mess "
              <h2>Profil</h2> \n
              Nachname: "
              .$nachname."\n
              Vorname: "
              .$vorname."\n
              Geburtsdatum: "
              .$geb."\n
              "
              ;
              $nachricht wordwrap($mess65"\n"false);                                                
              mail($mail$subject$nachricht'From: xxx@xxx.de'); 
              Hier auch ein paar Zeilen mehr.
              Vllt hilft es, wenn du unter $subject sauberen code schreibst. Soll heißen

              PHP-Code:
              $subject "Anamnese Input " .  $vorname " " $nachname"; 
              Gruß, Tobi

              Kommentar


              • #8
                Zitat von PuraVida
                Vllt hilft es, wenn du unter $subject sauberen code schreibst
                Nö, schon die fehlende Encoding-Angabe in $subject könnte schon spätestens bei einem Herrn Müller zum Problem werden, daher .. vergessen und Mailer-Klasse verwenden. Punkt. Reyes hat ja schon auf Mail-Klasse umgbaut, gut so!

                Zitat von Reyes
                bekomme aber weder Email noch Fehlermeldung.
                Debug-Modus aktivieren! (das error_reporting ganz offen ist, setzte ich jetzt mal voraus)

                PHP-Code:
                $mail->SMTPDebug  2;  // enables SMTP debug  information (for testing) 
                Gibts auch hier zum "erfahren" http://phpmailer.worxware.com/?pg=examplebsmtp

                LG
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  $mess = "
                  <h2>Profil</h2> \n
                  Nachname: ".$nachname."\n
                  Vorname: ".$vorname."\n
                  Geburtsdatum: ".$geb."\n
                  ";
                  $nachricht = wordwrap($mess, 65, "\n", false);
                  Jetzt wundert mich auch nicht, dass ich regelmäßig chaotisch formatierte E-Mails bekomme.

                  $subject = "Anamnese Input $vorname $nachname";
                  Und jetzt wirds gruselig. Programmierst Du zufällig für die gematik ?


                  Kinder, lernt Euren Kram, bevor Ihr in Kundenprojekte geht!!
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #10
                    Zitat von Reyes
                    Ich gehe davon aus, dass mein PHP Mailer nicht richtig geladen ist wenn ich keine Fehlermeldung bekomme?
                    Kommt ein Stück weit darauf an, ob Du Dir die Fehler anzeigen lässt:
                    PHP-Code:
                    error_reporting ( -);
                    ini_set 'display_errors'true ); 
                    damit sollten alle Meldungen angezeigt werden. Wenn hier also nichts kommt, kann man vermuten, daß PHPMailer korrekt eingebunden ist.

                    Zitat von Reyes
                    Wie kann ich überprüfen ob er eingebunden ist?
                    bspw.:
                    PHP-Code:
                    $mail = new PHPMailer;
                    var_dump$mail ); 
                    Zitat von Reyes
                    Kann ich mit einem relativen Pfad arbeiten (wie ich es habe) oder muss der Pfad absolut sein?
                    Relativ geht hier genauso, wie absolut.

                    Zitat von nikosch
                    Jetzt wundert mich auch nicht, dass ich regelmäßig chaotisch formatierte E-Mails bekomme.
                    Das was Du meinst, nennt sich SPAM...
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar

                    Lädt...
                    X