Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Email senden (https://www.delphipraxis.net/56516-%5Bphp%5D-email-senden.html)

Luckie 8. Nov 2005 00:06

Re: [PHP] Email senden
 
Hm. Gut. Dann lasse ich es erstmal so. Besten Dank für eure Hilfe. Hier noch mal das komplette Script:
Code:
<?php
  /*
  Copyright (c) 2005: Michael Puff
  Url: [url]http://www.luckie-online.de[/url]
  Mail: [email]mpuff@luckie-online.de[/email]
 
  Version: 1.1 - 2005-11-07
*/

  define("TO", "mpuff@luckie-online.de");
 
  function validate_email($email)
  {
 
     // Create the syntactical validation regular expression
     $regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$";
 
     // Presume that the email is invalid
     $valid = 0;
 
     // Validate the syntax
     if (eregi($regexp, $email))
     {
        list($username,$domaintld) = split("@",$email);
        // Validate the domain
        if (getmxrr($domaintld,$mxrecords))
           $valid = 1;
     } else {
        $valid = 0;
     }
     return $valid;
  }

  $headers = "MIME-Version: 1.0\r\n".
   "Content-Type: text/plain; charset=iso-8859-1\r\n".
   "From: \"Kontakt luckie-online.de\" <webmaster@luckie-online.de>\r\n".
   "To: ".TO." <".TO.">\r\n".
   "Date: ".date("r")."\r\n";

  $msg = "Name    : ".$_POST['yourname']."\n".
         "E-Mail  : ".$_POST['from']."\n".
         "Betreff : ".$_POST['subject']."\n\n".
    $text;
  $msg = stripslashes($msg);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Homepage von Michael Puff</title>
    <link rel="stylesheet" type="text/css" href="/css/dir.css">
  </head>
  <body>
  <h1>Homepage von Michael Puff</h1>
  <?php
    $dir = getcwd();
    $start = strpos(strtolower($dir), '/html/')+5;
    $s = substr($dir, 0, $start);
    include $s.'/includes/nav.shtml';
    include $s.'/includes/copyright.inc';
  ?>
  <h2>E-Mail senden</h2>
  [img]/pics/line.png[/img]
 



<?php
  if ((empty($from) || empty($text)) || (!validate_email($_POST['from'])))
  {
     echo "

Bitte füllen Sie mindestens die Felder 'E-Mail Adresse' und 'Text' aus und überprüfen Sie ihre E-Mail Adresse
     auf Gültigkeit.</p>";
  }
  else if (!mail($to, $_POST['subject'], $msg, $headers))
  {
    echo '

Es ist ein Fehler beim Senden der E-Mail aufgetreten.</p>';
  }
  else
  {
    echo '

Die E-Mail wurde erfolgreich gesendet.</p>';
  }
?>




  [img]/pics/line.png[/img]
  <table class="tblfooter">
    <tr>
    <?php
      echo '<td class="total"></td>'.'<td class="copy">'.$cr.'</td>';
    ?>
    </tr>
  </table>
</body>
</html>

MisterNiceGuy 17. Feb 2006 18:15

Re: [PHP] Email senden
 
Ich würde dieses Sript auch gerne auf meiner Seite verwenden, nur weiß ich nicht wie ich es einbinde. Kann mir da jemand kurz helfen?

MisterNiceGuy 19. Feb 2006 16:38

Re: [PHP] Email senden
 
*PUSH*

DGL-luke 20. Feb 2006 09:02

Re: [PHP] Email senden
 
Du brauchst eine HTML-Datei mit einer Form, die Daten dieser Form müssen dann an das PHP-Skript gehen.

Luckie 14. Apr 2006 04:36

Re: [PHP] Email senden
 
So, schöne Grüße von meinem Webhoster, das Script funktioniert nicht mehr so wie es soll. Heute Nacht hat mein Hoster irgendwas am Mailsystem gemacht, was hat er nicht gesagt, aber jeden falls zeigt mir Outlook nicht mehr an von wem die Mail ist. Im Webmail Interface wird alles korrekt angezeigt.

So sieht es zur Zeit aus:
Code:
<?php
  /*
  Copyright (c) 2005: Michael Puff
  Url: [url]http://www.michael-puff.de[/url]
  Mail: [email]mpuff@michael-puff.de[/email]
 
  Version: 1.1 - 2005-11-07
*/

  define("TO", "mpuff@michael-puff.de");
 
  function validate_email($email)
  {
 
     // Create the syntactical validation regular expression
     $regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$";
 
     // Presume that the email is invalid
     $valid = 0;
 
     // Validate the syntax
     if (eregi($regexp, $email))
     {
        list($username,$domaintld) = split("@",$email);
        // Validate the domain
        if (getmxrr($domaintld,$mxrecords))
           $valid = 1;
     } else {
        $valid = 0;
     }
     return $valid;
  }

  $headers = "MIME-Version: 1.0\r\n".
   "Content-Type: text/plain; charset=iso-8859-1\r\n".
   "From: \"Developer michael-puff.de\" <mpuff@michael-puff.de>\r\n".
   "To: ".TO." <".TO.">\r\n".
   "Date: ".date("r")."\r\n";

  $msg = "Name    : ".$_POST['yourname']."\n".
         "E-Mail  : ".$_POST['from']."\n".
         "Betreff : ".$_POST['subject']."\n\n".
    $text;
  $msg = stripslashes($msg);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>michael-puff.de/E-Mail senden</title>
    <link rel="stylesheet" type="text/css" href="/css/stylesheet.css">
  </head>
  <body>
  <div>
  <h1>Homepage von Michael Puff</h1>
  <?php
    $dir = getcwd();
    $start = strpos(strtolower($dir), '/html/')+5;
    $s = substr($dir, 0, $start);
    include $s.'/includes/nav.shtml';
  ?>
  <h2>E-Mail senden</h2>
 


<?php
  if ((empty($from) || empty($text)) || (!validate_email($_POST['from'])))
  {
     echo "

Bitte füllen Sie mindestens die Felder 'E-Mail Adresse' und 'Text' aus und überprüfen Sie ihre E-Mail Adresse
     auf Gültigkeit.</p>";
  }
  else if (!mail($TO, $_POST['subject'], $msg, $headers))
  {
    echo '

Es ist ein Fehler beim Senden der E-Mail aufgetreten.</p>';
  }
  else
  {
    echo '

Die E-Mail wurde erfolgreich gesendet.</p>';
  }
?>




  <hr>
  <table class="tblfooter">
    <tr>
    <?php
      echo '<td class="left"></td>';
      echo '<td class="right">Copyright &copy; 2003 - '.date("Y").' [url="/impressum.php"]Michael Puff[/url]</td>';
    ?>
    </tr>
  </table>
  </div>
</body>
</html>
Früher stand da immer in der "Von"-Spalte: Developer michael-puff.de jetzt ist sie aufeinmal leer. :wall:

Und die Mail sieht jetzt so aus:
Zitat:

Content-Type: text/plain; charset=iso-8859-1
From: "Developer michael-puff.de" <mpuff@michael-puff.de>
To: mpuff@michael-puff.de <mpuff@michael-puff.de>
Date: Fri, 14 Apr 2006 05:26:52 +0200


Name : kqfbd
E-Mail : mpuff@gmx.de
Betreff : kacbk

kascbsakdjcb
Der Header sollte da eigentlich nicht stehen und tat er früher auch nicht.

Irgendwas läuft da schief.

Luckie 14. Apr 2006 10:58

Re: [PHP] Email senden
 
Hat sich erledigt, der neue Dienst kommt mit \r\n nicht zurecht. Es muss strikt \n sein. Der alte hat es noch konvertiert. Jetzt geht alles wieder. ;)

DGL-luke 14. Apr 2006 13:48

Re: [PHP] Email senden
 
:warn: Die RFCs spezifizieren sowohl für POP als auch für SMTP \r\n als Zeilenendezeichen... Somit ist der Provider im Unrecht.

Obwohl ich nicht verstehe, was der Server dagegen hat, wenn an jedem Zeilenende \r steht :gruebel:

Luckie 14. Apr 2006 15:03

Re: [PHP] Email senden
 
Was heißt unrecht? Das Programm ist höchstens nicht RFC konform, Recht hat der Hoster schon, wenn er sagt, dass das Mail-Programm mit \r\n nicht klar kommt.

Luckie 14. Apr 2006 15:21

Re: [PHP] Email senden
 
Jemand aus dem Webhosterforum meinte übrigens, dass das Script angreifbar wäre:
Zitat:

Dein Skript ist übrigens angreifbar wenn ich mich nicht irre.

$_POST['subject'] mit

ABC\n
To: spammich@doch\n
Bcc: nocheinspam@opfer.com\n
\n
.

Außer das Ganze ist im MTA gesperrt, da bin ich mir aber nicht sicher.
Stimmt das? Und wenn ja, was müsste ich ändern, um das zu unterbinden?

Daniel 14. Apr 2006 15:23

Re: [PHP] Email senden
 
Zeilenumbruch im Subject unterbinden, sollte in diesem Fall helfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz