leere (und falsche) E-Mail kommt an

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • leere (und falsche) E-Mail kommt an

    Hallo zusammen,

    ja, wiede rgeht es um formulare^^
    Diesmal ist es ein selbstgeschriebenes.
    Das sieht so aus:

    Quellcode

    1. <?php
    2. $ip = $_SERVER['REMOTE_ADDR'];
    3. $name = $_POST['name'];
    4. $name_forum = $_POST['name_forum'];
    5. $betreff = $_POST['betreff'];
    6. $nachricht = $_POST['nachricht'];
    7. $absender = $_POST['absender'];
    8. $from="Von " . $name . " " . $absender . "\n";
    9. $from .= "Reply-To: " . $absender . "\n";
    10. $text = "IP: " . $ip . "\n";
    11. $text .= "Betreff: " . $betreff . "\n";
    12. $text .= "Name: " . $name . "\n";
    13. $text .= "Name im Forum: " . $name_forum . "\n";
    14. if ($_GET['show'] == "kontakt")
    15. {
    16. $empfaenger = "kontakt@fipsii.de";
    17. echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
    18. echo '<table width=90% cellspacing="10" cellpadding="0">';
    19. echo '<tr>';
    20. echo '<td>Name:</td>';
    21. echo '<td><input type="text" name="name" size="50"></td>';
    22. echo '</tr>';
    23. echo '<tr>';
    24. echo '<td>Name im <a href="forum">Forum</a>:';
    25. echo '<td><input type="text" name="name_forum" size="50"></td>';
    26. echo '</tr>';
    27. echo '<tr>';
    28. echo '<td>Deine E-Mail-Adresse:</td>';
    29. echo '<td><input type="text" name="absender" size="50">';
    30. echo '</tr>';
    31. echo '<tr>';
    32. echo '<td>Betreff:</td>';
    33. echo '<td><input type="text" name="betreff" size="50"></td>';
    34. echo '</tr>';
    35. echo '<tr>';
    36. echo '<td>Nachricht:</td>';
    37. echo '<td><textarea cols="40" rows="10" name="nachricht"></textarea></td>';
    38. echo '</tr>';
    39. echo '<tr>';
    40. echo '<td>&nbsp;</td>';
    41. echo '<td><input type="submit" name="Absenden" value="Absenden"></td>';
    42. echo '</tr>';
    43. echo '</table>';
    44. echo '</form>';
    45. }
    46. else if ($_GET['show'] == "beschwerde")
    47. {
    48. $text .= "Name des Team-Mitglied\'s: " . $team_name . "\n";
    49. $empfaenger = "abso-admin@fipsii.de";
    50. echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
    51. echo '<table width=90% cellspacing="10" cellpadding="0">';
    52. echo '<tr>';
    53. echo '<td><input type="hidden" name="betreff" value="Beschwerde über ' . $team_name . '"></td>';
    54. echo '<td>&nbsp;</td>';
    55. echo '</tr>';
    56. echo '<tr>';
    57. echo '<td>Name:</td>';
    58. echo '<td><input type="text" name="name" size="50"></td>';
    59. echo '</tr>';
    60. echo '<tr>';
    61. echo '<td>Name im <a href="forum">Forum</a>:';
    62. echo '<td><input type="text" name="name_forum" size="50"></td>';
    63. echo '</tr>';
    64. echo '<tr>';
    65. echo '<td>Deine E-Mail-Adresse:</td>';
    66. echo '<td><input type="text" name="absender" size="50">';
    67. echo '</tr>';
    68. echo '<tr>';
    69. echo '<td>Name des Team-Mitglied\'s:</td>';
    70. echo '<td><input type="text" name="team_name" size="50"></td>';
    71. echo '</tr>';
    72. echo '<tr>';
    73. echo '<td>Nachricht:</td>';
    74. echo '<td><textarea cols="40" rows="10" name="nachricht"></textarea></td>';
    75. echo '</tr>';
    76. echo '<tr>';
    77. echo '<td>&nbsp;</td>';
    78. echo '<td><input type="submit" name="Absenden" value="Absenden"></td>';
    79. echo '</tr>';
    80. echo '</table>';
    81. echo '</form>';
    82. }
    83. else if ($_GET['show'] == "sf-guide-artikel")
    84. {
    85. $empfaenger = "entwickler@fipsii.de";
    86. $text .= "Link der Seite: " . $link . "\n";
    87. echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
    88. echo '<table width=90% cellspacing="10" cellpadding="0">';
    89. echo '<tr>';
    90. echo '<td><input type="hidden" name="betreff" value="Meldung einer Seite"></td>';
    91. echo '<td>&nbsp;</td>';
    92. echo '</tr>';
    93. echo '<tr>';
    94. echo '<td>Name:</td>';
    95. echo '<td><input type="text" name="name" size="50"></td>';
    96. echo '</tr>';
    97. echo '<tr>';
    98. echo '<td>Name im <a href="forum">Forum</a>:';
    99. echo '<td><input type="text" name="name_forum" size="50"></td>';
    100. echo '</tr>';
    101. echo '<tr>';
    102. echo '<td>Deine E-Mail-Adresse:</td>';
    103. echo '<td><input type="text" name="absender" size="50">';
    104. echo '</tr>';
    105. echo '<tr>';
    106. echo '<td>Link der Seite:</td>';
    107. echo '<td><input type="text" name="link" size="50"></td>';
    108. echo '</tr>';
    109. echo '<tr>';
    110. echo '<td>Nachricht:</td>';
    111. echo '<td><textarea cols="40" rows="10" name="nachricht"></textarea></td>';
    112. echo '</tr>';
    113. echo '<tr>';
    114. echo '<td>&nbsp;</td>';
    115. echo '<td><input type="submit" name="Absenden" value="Absenden"></td>';
    116. echo '</tr>';
    117. echo '</table>';
    118. echo '</form>';
    119. }
    120. else if ($_GET['show'] == "forum-thread")
    121. {
    122. $empfaenger = "moderatoren@fipsii.de";
    123. $text .= "Link zum Thread: : " . $link . "\n";
    124. echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
    125. echo '<table width=90% cellspacing="10" cellpadding="0">';
    126. echo '<tr>';
    127. echo '<td><input type="hidden" name="betreff" value="Meldung eines Threads"></td>';
    128. echo '<td>&nbsp;</td>';
    129. echo '</tr>';
    130. echo '<tr>';
    131. echo '<td>Name:</td>';
    132. echo '<td><input type="text" name="name" size="50"></td>';
    133. echo '</tr>';
    134. echo '<tr>';
    135. echo '<td>Name im <a href="forum">Forum</a>:';
    136. echo '<td><input type="text" name="name_forum" size="50"></td>';
    137. echo '</tr>';
    138. echo '<tr>';
    139. echo '<td>Deine E-Mail-Adresse:</td>';
    140. echo '<td><input type="text" name="absender" size="50">';
    141. echo '</tr>';
    142. echo '<tr>';
    143. echo '<td>Link zum Thema(/Thread):</td>';
    144. echo '<td><input type="text" name="link" size="50"></td>';
    145. echo '</tr>';
    146. echo '<tr>';
    147. echo '<td>Nachricht:</td>';
    148. echo '<td><textarea cols="40" rows="10" name="nachricht"></textarea></td>';
    149. echo '</tr>';
    150. echo '<tr>';
    151. echo '<td>&nbsp;</td>';
    152. echo '<td><input type="submit" name="Absenden" value="Absenden"></td>';
    153. echo '</tr>';
    154. echo '</table>';
    155. echo '</form>';
    156. }
    157. else if ($_GET['show'] == "forum-user")
    158. {
    159. $empfaenger = "moderatoren@fipsii.de";
    160. $text .= "Name des Users: " . $name_user . "\n";
    161. echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
    162. echo '<table width=90% cellspacing="10" cellpadding="0">';
    163. echo '<tr>';
    164. echo '<td><input type="hidden" name="betreff" value="Meldung eines Users"></td>';
    165. echo '<td>&nbsp;</td>';
    166. echo '</tr>';
    167. echo '<tr>';
    168. echo '<td>Name:</td>';
    169. echo '<td><input type="text" name="name" size="50"></td>';
    170. echo '</tr>';
    171. echo '<tr>';
    172. echo '<td>Name im <a href="forum">Forum</a>:';
    173. echo '<td><input type="text" name="name_forum" size="50"></td>';
    174. echo '</tr>';
    175. echo '<tr>';
    176. echo '<td>Deine E-Mail-Adresse:</td>';
    177. echo '<td><input type="text" name="absender" size="50">';
    178. echo '</tr>';
    179. echo '<tr>';
    180. echo '<td>Name des Benutzers (/Users):</td>';
    181. echo '<td><input type="text" name="name_user" size="50"></td>';
    182. echo '</tr>';
    183. echo '<tr>';
    184. echo '<td>Nachricht:</td>';
    185. echo '<td><textarea cols="40" rows="10" name="nachricht"></textarea></td>';
    186. echo '</tr>';
    187. echo '<tr>';
    188. echo '<td>&nbsp;</td>';
    189. echo '<td><input type="submit" name="Absenden" value="Absenden"></td>';
    190. echo '</tr>';
    191. echo '</table>';
    192. echo '</form>';
    193. }
    194. else
    195. {
    196. echo 'blaaaaaaa';
    197. }
    198. $text .= "Nachricht: \n" . $nachricht;
    199. mail($empfaenger, $betreff, $text, $from);
    200. ?>
    Alles anzeigen


    Wenn ich jetzt eins nehm, dann kommt eine E-Mail an, doch diese ist leer, es steht nur die IP drin.
    Wenn ich es nur mit einem formular und ohne die if-teile hab (

    Quellcode

    1. <?php
    2. $ip = $_SERVER['REMOTE_ADDR'];
    3. $name = $_POST['name'];
    4. $name_forum = $_POST['name_forum'];
    5. $betreff = $_POST['betreff'];
    6. $nachricht = $_POST['nachricht'];
    7. $absender = $_POST['absender'];
    8. $from="Von " . $name . " " . $absender . "\n";
    9. $from .= "Reply-To: " . $absender . "\n";
    10. $text = "IP: " . $ip . "\n";
    11. $text .= "Betreff: " . $betreff . "\n";
    12. $text .= "Name: " . $name . "\n";
    13. $text .= "Name im Forum: " . $name_forum . "\n";
    14. $text .= "Nachricht: \n" . $nachricht;
    15. mail($empfaenger, $betreff, $text, $from);
    16. $empfaenger = "kontakt@fipsii.de";
    17. echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
    18. echo '<table width=90% cellspacing="10" cellpadding="0">';
    19. echo '<tr>';
    20. echo '<td>Name:</td>';
    21. echo '<td><input type="text" name="name" size="50"></td>';
    22. echo '</tr>';
    23. echo '<tr>';
    24. echo '<td>Name im <a href="forum">Forum</a>:';
    25. echo '<td><input type="text" name="name_forum" size="50"></td>';
    26. echo '</tr>';
    27. echo '<tr>';
    28. echo '<td>Deine E-Mail-Adresse:</td>';
    29. echo '<td><input type="text" name="absender" size="50">';
    30. echo '</tr>';
    31. echo '<tr>';
    32. echo '<td>Betreff:</td>';
    33. echo '<td><input type="text" name="betreff" size="50"></td>';
    34. echo '</tr>';
    35. echo '<tr>';
    36. echo '<td>Nachricht:</td>';
    37. echo '<td><textarea cols="40" rows="10" name="nachricht"></textarea></td>';
    38. echo '</tr>';
    39. echo '<tr>';
    40. echo '<td>&nbsp;</td>';
    41. echo '<td><input type="submit" name="Absenden" value="Absenden"></td>';
    42. echo '</tr>';
    43. echo '</table>';
    44. echo '</form>';
    Alles anzeigen
    )
    dann komt die E-mail, aber
    a) einmal leer, also leider gleich, wenn ich nur die Seite aufruf, wird sie schon losgeschickt
    und b) ist der absender immer "web139@dehamd071.configcenter.info" und nicht die eingetragene E-Mail-Adresse.

    Ich hoffe, ihr könnt mir mal wieder helfen.

    LG

    Fipsi
  • Du solltest mal deine E-Mail Header überprüfen. Du schreibst z. Bsp. in deinen Header "Von: bla@bla.com", welches es jedoch gar nicht gibt. In den Header gehören nur fest definierte Werte hinein. Für Von solltest du "From: bla@bla.com" verwenden. Und $name wird wahrscheinlich auch nichts dort zu suchen haben. Hinter From: gehört nur die Absenderadresse. An diese wird im Normalfall auch eine Antwort geschrieben, also ist dein Reply-To: überflüssig, da du dort anscheinend die Absenderadresse einträgst.

    Ansonsten scheint dein Skript auch noch nicht ganz fertig zu sein. Du solltest prüfen, ob das Formular vom Benutzer bereits aufgerufen wurde und somit Daten zum Versenden vorliegen. Andernfalls wird das entsprechende Formular angezeigt. Im Moment wird beim Aufruf versucht Daten aus einer POST-Request auszulesen, welche nicht zwingend existiert. Und das mail() am Ende sollte natürlich auch nur ausgeführt werden, wenn Daten zum Versenden vorliegen.

    Hast du einmal probiert den Quelltext der E-Mail anzeigen zu lassen? In Thunderbird kann man das mit Strg+U. Dort werden meistens mehr Informationen angezeigt, so z. Bsp. auch der Header im Textformat. Du könntest diesen mal posten.

    Für weitere Tipps solltest du dir mal de.php.net/manual/de/function.mail.php anschauen, dort sind einige Parameter für mail erklärt.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Ich habs mir nicht alles genau angeschaut, aber zu emails kann ich immer wieder sagen, das es schneller und einfacher ist eine fertige Mailklasse zu nutzen.

    z.B phpmailer


    Übergens brauchst du nicht in jede Zeile ein echo setzen.

    Quellcode

    1. echo " Hallo {$name},
    2. ich
    3. kann
    4. auch
    5. über mehrere
    6. Zeilen
    7. hinweg .....
    8. nicht so schön: $name oder " . $name. " blubb foobar";


    $_SERVER['PHP_SELF'] ist bei Formularen nicht besonders gut, da man dies leicht manipulieren kann. (siehe XSS)
  • Der Quellcode:

    Return-Path: <web139@dehamd071.configcenter.info>
    X-Original-To: kontakt@fipsii.de
    Delivered-To: web139p2@dehamd071.configcenter.info
    Received: by dehamd071.configcenter.info (Postfix, from userid 1002)
    id 8A58195C8987; Thu, 17 Feb 2011 15:16:49 +0100 (CET)
    To: kontakt@fipsii.de
    Subject:
    Message-Id: <20110217141649.8A58195C8987@dehamd071.configcenter.info>
    Date: Thu, 17 Feb 2011 15:16:49 +0100 (CET)
    From: web139@dehamd071.configcenter.info
    X-server3-MailScanner-Information: Please contact the ISP for more information
    X-server3-MailScanner-ID: 8A58195C8987.A7B3E
    X-server3-MailScanner: Found to be clean
    X-server3-MailScanner-From: web139@dehamd071.configcenter.info
    X-Spam-Status: No

    Von
    Reply-To:


    IP: 80.149.146.171
    Betreff:
    Name:
    Name im Forum:
    Nachricht:

    Ich bastel mal dran, dass nur bei klicken daten überbracht werden.

    Und nien, ich mag keine fertigen php-klassen, da mir die nicht das so ausgeben wie ich will...

    Edit: mittlerweile kommt auch nur ncoh die leere E-Mail an... *grummel*
  • vince schrieb:

    ähm, ja 8|

    Vince lass ihn doch, wenn er es sich nicht leichter machen will ;).
    Aber ich muss Vince zustimmen, fertige Mailskripte sind um einiges komfortabler, und wenn sie gut programmiert sind, dann kannst du deine E-Mail so formatieren und verändern, wie du es willst (inkl. Header).

    Zurück du deinem Skript:
    Bist du denn sicher, dass alle Daten, die dein Skript braucht, vorhanden sind?
    Füge mal vor mail()

    Quellcode

    1. print_r($_POST);
    ein.
    Deinen Body setzt du, soweit ich das sehe, richtig zusammen, so dass auch die entsprechenden Werte in deiner E-Mail stehen müssten.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.