1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

PHP Mail Problem

  • sugadaddy
  • 30. Januar 2011 um 01:33
  • 1
  • 2
  • sugadaddy
    Youngster
    Beiträge
    12
    • 30. Januar 2011 um 01:33
    • #1

    bin realtiv neu was PHP angeht und versuche gerade ein FeedbackFormular zu erstellen das mit PHP Mails verschicken soll...im HTML weise ich auf eine externe PHP-Datei hin:


    <form method="post" action="sendmail.php">
    <table>
    <tr>
    <td>Your name</td>
    <td><input class="field" type="text" name="name" size="40"></td>
    </tr>
    <tr>
    <td>Your email</td>
    <td><input type="text" name="email" size="40"></td>
    </tr>
    <tr>
    <td>Your message&nbsp&nbsp&nbsp</td>
    <td><textarea name="message" cols="40" rows="10</textarea></td>
    </tr>
    </table>
    </form>


    hier der Code der "sendmail.php"-Datei:


    <?php

    $strTo = 'info@meine-webseite.de';

    $strFrom = 'mail@meine-webseite.de';

    $strSubject = 'Feedback';

    $strForm = $_REQUEST['name'] ;

    $strForm .= $_REQUEST['email'] ;

    $strForm .= $_REQUEST['message'] ;


    $strReturnhtml = 'http://www.meine-webseite.de/message-sent.html';


    $strHeader = ("From: " . $strFrom . "\n");
    $strHeader .= ("Reply-To: " . $strFrom . "\n");
    $strHeader .= ("Return-Path: " . $strFrom . "\n");
    $strHeader .= ("X-Mailer: PHP/" . phpversion() . "\n");
    $strHeader .= ("X-Sender-IP: " . $REMOTE_ADDR . "\n");
    $strHeader .= ("Content-type: text/html\n");

    mail($strTo, $strSubject, $strForm, $strHeader, "From: ".$strFrom);
    header("Location: $strReturnhtml");

    ?>

    irgendwas scheint nicht zu klappen...danke schonmal!

  • sugadaddy
    Youngster
    Beiträge
    12
    • 30. Januar 2011 um 01:47
    • #2

    PS: der Send-button ist natürlich im Original dabei ;)

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 30. Januar 2011 um 02:50
    • #3

    generell : nutze für mails eine fertige klasse wie den phpmailer.

    ansonsten wer wwärs gut zu wissen, was genau nicht klappt (Fehlermeldung etc)


  • sugadaddy
    Youngster
    Beiträge
    12
    • 30. Januar 2011 um 03:05
    • #4

    es kommt einfach keine Mail an. Die Bestätigungsseite ('http://www.meine-webseite.de/message-sent.html') wird angezeigt; also dieser Teil des Scripts funktioniert schon mal.

  • Pion
    Gast
    • 30. Januar 2011 um 10:01
    • #5

    Localhost ? Nicht möglich Emails zu verschicken ?

  • The User
    Forum Guru
    Beiträge
    4.044
    • 30. Januar 2011 um 11:33
    • #6

    Das mit mail wirst du nur bereuen, nimm den PHPMailer zur Hand, lieber heute als morgen.

    Freiheit bedeutet mehr.

    "Mir ist die gefährliche Freiheit lieber als eine ruhige Knechtschaft."
    (Jean Jacques Rousseau)
    Mein Blog zum Programmieren, GNU/Linux etc.
    Free Chelsea Manning!
    Stolzer Nutzer von KDE, openSUSE und Qt.

  • sugadaddy
    Youngster
    Beiträge
    12
    • 30. Januar 2011 um 12:18
    • #7

    Danke für den Tip mit PHPMailer...werde ich ausprobieren...trotzdem würde mich interessieren was an dem Code nicht funktioniert...sonst lern ich ja nix :)

  • sugadaddy
    Youngster
    Beiträge
    12
    • 30. Januar 2011 um 16:22
    • #8

    puh, hab mir das gerade angeschaut und das ist mir viel zu hoch...dass sind knapp 2000-Zeilen an Code. Bin wie gesagt blutiger EDV-Anfänger. Ich möchte einfach nur dass das man mit dem oben genannten Mini HTML-Formular eine Email verschicken kann und dass ich wenn möglich ein wenig Kontrolle darüber habe wie und wo mir das Script die Eingaben des Users in der Empfangsmail einträgt. Gibt es zu PHPMailer eine andere Alternative?

  • Pion
    Gast
    • 30. Januar 2011 um 16:26
    • #9

    Der Code wie der PHP Mailer umgesetzt wurde hat dich auch nicht zu interessieren, einfach die Doku lesen das ist mit wenigen Zeilen realisierbar.

  • The User
    Forum Guru
    Beiträge
    4.044
    • 31. Januar 2011 um 01:12
    • #10

    mail ist Lowlevel-Funktion, du musst letztendlich das ganze E-Mail- und MIME-Zeug verstehen, und das ist eben haufenweise Zeug, das nicht immer das macht, was man will.
    Tutorial: http://phpmailer.worxware.com/index.php?pg=tutorial
    Einfach lesen, der Quellcode ist uninteressant, den von mail hast du dir sicherlich auch nicht angesehen.

    Freiheit bedeutet mehr.

    "Mir ist die gefährliche Freiheit lieber als eine ruhige Knechtschaft."
    (Jean Jacques Rousseau)
    Mein Blog zum Programmieren, GNU/Linux etc.
    Free Chelsea Manning!
    Stolzer Nutzer von KDE, openSUSE und Qt.

  • sugadaddy
    Youngster
    Beiträge
    12
    • 31. Januar 2011 um 11:14
    • #11

    vielen dank schonmal...konnte immerhin herausfinden das mein Provider Sendmail benutzt...deswegen sieht das Script jetzt so aus:

    <?php

    require("phpmailer/class.phpmailer.php");
    $mail = new PHPMailer();
    $mail->IsSendMail();

    $mail->From = "from@meine-webseite.de";
    $mail->AddAddress("info@meine-webseite.de");
    $mail->Subject = "First PHPMailer Message";
    $mail->Body = "Hi! \n\n This is my first e-mail sent through PHPMailer.";
    $mail->WordWrap = 50;

    if(!$mail->Send()) {
    echo 'Message was not sent.';
    echo 'Mailer error: ' . $mail->ErrorInfo;
    } else {
    echo 'Message has been sent.';
    }

    ?>


    das war das Script von Worx...hab nur das:

    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->Host = "smtp.example.com"; // SMTP server

    durch:

    "$mail->IsSendMail();"

    ersetzt. Es kommt keine Fehlermeldung und das Script wird ausgeführt da nach Betätigung des Send-buttons "Message has been sent" ausgegeben wird. Was klappt da nicht?

  • Unregistriert
    Gast
    • 31. Januar 2011 um 11:25
    • #12
    Zitat

    Was klappt da nicht?


    Woher sollen wir das wissen? Kommt immer noch keine Mail an?

    Ansonsten würde ich über einen bestehenden Mail-Account per SMTP senden

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 31. Januar 2011 um 12:16
    • #13

    du bist tatsächlich Besitzer der Domain meine-webseite.de ?
    da ist aber jemand ein gemachter Mann :D

    $mail->AddAddress("info@meine-webseite.de");


  • sugadaddy
    Youngster
    Beiträge
    12
    • 31. Januar 2011 um 12:25
    • #14

    haha...hätte auch noch http://www.deine-webseite.de zu bieten ;)
    hab mich jetzt mal an meinen Provider gewendet da ich keine Erklärung finde wieso da nix ankommt-

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 31. Januar 2011 um 13:59
    • #15

    du, eigentlich hab ichs dir doch erklärt ;)
    bei $mail->AddAddress() gehört deine mailadresse rein...


  • sugadaddy
    Youngster
    Beiträge
    12
    • 31. Januar 2011 um 14:05
    • #16

    hab im Original natürlich meine richtige Zieladresse drin...die existiert und es lassen sich auch aus Outlook, etc direkt Mails dorthin schicken, nur mit dem Script halt nicht!-

  • sugadaddy
    Youngster
    Beiträge
    12
    • 31. Januar 2011 um 14:06
    • #17

    habs auch mit SMTP probiert...ging auch nicht-

  • Unregistriert
    Gast
    • 31. Januar 2011 um 15:33
    • #18

    Mit SMTP geht das immer! Ich verschicke mit dem phpMailer Mail über GMX, Arcor, etc., das macht überhaupt keine Probleme. Du musst allerdings als Absender einen bestehenden Account mit Benutzername und Passwort nehmen.

  • sugadaddy
    Youngster
    Beiträge
    12
    • 31. Januar 2011 um 18:04
    • #19

    muss an der Datei 'class.phpmailer.php' auch noch was geändert werden oder reicht es wenn das oben angeführte Script die von Worx heruntergeladene 'class.phpmailer.php'-Datei aufruft?

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 31. Januar 2011 um 18:53
    • #20

    apropos: folgendes bitte mal ganz an den Anfang des Scripts:

    PHP
    error_reporting(E_ALL);
    ini_set('display_errors', true);


    • 1
    • 2

Tags

  • www
  • html
  • email
  • http
  • text
  • webseite
  • post
  • problem
  • input
  • location
  • code
  • php
  • datei
  • ip
  • mail
  • info
  • sender
  • externe
  • table
  • real
  • action
  • remote
  • message
  • name
  • field
  • sendmail
  • request
  • reply
  • feedbackformular
  • php mail problem
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern