C_Buster_G: Massen Mails

Nabend zusammen,

Bin dabei mir nen massen Mailer(Newsletter) zu schreiben, allerdings hab ich noch nen Problem, das Script will mir einfach nicht die Mails versenden.)-;

Ich hab euch das ganze Script und den Textfile hier mit Gepostet:

Textfile:

test@test.com|
test@test.com|
test@test.com|
test@test.com|

Script:
<?

function formular()
{
echo "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html>
<head>
<title>Newsletter Senden</title>
<META HTTP-EQUIV='content-type' CONTENT='text/html;charset=iso-8859-1'>
</head>
<body>
<div align=center>
<form method='post' action='admin.php'>
<table width=150 cellpadding=3 cellspacing=0 border=0>
<tr><td>
<table width=150 cellpadding=0 cellspacing=0 border=0>
<tr><th>Admin Area</th></tr>
<tr><td><textarea rows='4' name='text' cols='27'></textarea></td></tr>
<tr><td>An alle Mitglieder Senden?<input type='checkbox' name='send' size='25'></td></tr>
<tr><td><input type='submit' name='send' value='senden' size='25'>
<input type='hidden' name='senden' value='1'></td></tr>
</table>
</form>";
}
function user()
{

$mitglieder=fopen("user.dat","r");
$mitglieder=fread($mitglieder,1024);
$mitglieder=trim($mitglieder);
echo "Datenbank:<br>".nl2br($mitglieder)."<br>";

}

if($senden)//hier wirds interessant, hoffe ihr könnt mir helfen
{

$mitglieder=fopen("user.dat","r");
$mitglieder=fread($mitglieder,4096);

$empfaenger = explode('|',$mitglieder);

$z=count($empfaenger);

for($i=0;$i<$z;$i++)
{echo "$empfaenger[$i]";}

$tag = date("d.m.Y");

$name = "Webmaster";
$email = "Webmaster@DynamicWebPower.de";
$betreff = "Newsletter";

$header = "From: '$name', '$email'\n";

reset($empfaenger);
  trim($empfaenger);
  while(list($i, $to) = each($empfaenger)) {
    $bcc .= "Bcc: $to\r\n";
  }
  mail("em@pfaeng.er",
     "Testmail",
     "Dies ist nur eine Testnachricht.",
     $bcc);

echo "Es wurden $z Mitglieder angeschrieben!";

}
else
formular();
//user();
?>

Ich danke euch..

Mit freundlichen Grüssen

C_buster_G

  1. Hi,

    Bin dabei mir nen massen Mailer(Newsletter) zu schreiben, allerdings hab ich noch nen Problem, das Script will mir einfach nicht die Mails versenden.)-;

    den Grund dafür kannst nur Du uns nennen. Analysiere das Problem, z.B. indem Du Testausgaben machst, anstatt Mails zu verschicken. Untersuche auch, ob Du überhaupt Mails verschicken kannst; wenn es geht, vergleiche die jeweiligen Codes auf Unterschiede.

    Cheatah

    1. Hi,

      Hi

      den Grund dafür kannst nur Du uns nennen. Analysiere das Problem, z.B. indem Du Testausgaben machst, anstatt Mails zu verschicken. Untersuche auch, ob Du überhaupt Mails verschicken kannst; wenn es geht, vergleiche die jeweiligen Codes auf Unterschiede.

      Kleine Analyse:

      Ich hab die Funktion mail() durch echo ""; ausgetauscht und das kamm bei raus:

      (em@pfaeng.er, Testmail, Dies ist nur eine Testnachricht., Bcc: test@test.com Bcc: test@test.com Bcc: test@test.com Bcc: test@test.com Bcc: test@test.com Bcc: )

      ----

      Ebenso hab ich den Textfile durch einen vorgefertigten Array in dieser Form --> $empfaenger = array  ("test@test.com", "test@test.de"); <--

      Und siehe da es geht! Das Script schreibt mir alle im array enthaltenen adressen an. Also steckt mein Fehler wohl im Speichern oder Auslesen des Arrays, ich denke das ich das Prinzip vom Array nicht ganz verstanden hab.)-;

      Da mein Textfile so aussieht

      test@test.com|
      test@test.com|
      test@test.com|

      nehme ich an das ich diesen mit explode() durch mein selbst definiertes Trennzeichen wieder Splitte da es sonst wohl nicht als array behandelt wird und anstatt 3 adressen eine lange ergeben würde oder?
      Also ich denke wenn mir jemand Den Aufbau vom array an einem Beispiel zeigen kann dürfte ich es selber hinkriegen:

      Vermutung 1:

      test[1]|test[2]|test[3]|
      test[1]|test[2]|test[3]|

      Oder 2:

      test[1]|
      test[2]|

      Ich hoffe das bei meinem Roman noch einer durchsieht (-;
      Und bin euch dankbar für die mühen die ihr damit habt...

      MfG C_buster_G

      Cheatah

      1. Hi,

        Ich hab die Funktion mail() durch echo ""; ausgetauscht und das kamm bei raus:

        ist das die Anzeige im Browser oder der Quellcode der Ausgabe? Ersteres ist extrem unerheblich; letzteres würde bedeuten, dass Du zwischen den Mail-Headern keine Umbrüche hast, was nicht wirklich funktionieren kann.

        Ebenso hab ich den Textfile durch einen vorgefertigten Array in dieser Form --> $empfaenger = array  ("test@test.com", "test@test.de"); <--
        Und siehe da es geht!

        Finde also den Unterschied zwischen den eingelesenen und den hartkodierten Daten.

        Cheatah

        1. Hi,

          Ich hab die Funktion mail() durch echo ""; ausgetauscht und das kamm bei raus:

          ist das die Anzeige im Browser oder der Quellcode der Ausgabe? Ersteres ist extrem unerheblich; letzteres würde bedeuten, dass Du zwischen den Mail-Headern keine Umbrüche hast, was nicht wirklich funktionieren kann.

          Bezieht sich auf die Ausgabe im Browser..

          Ebenso hab ich den Textfile durch einen vorgefertigten Array in dieser Form --> $empfaenger = array  ("test@test.com", "test@test.de"); <--
          Und siehe da es geht!

          Finde also den Unterschied zwischen den eingelesenen und den hartkodierten Daten.

          Da ham wa auch schon das Problem ich seh da einfach keinen Unterschied, ich hab schon um Fehler zu vermeiden den Header verkürzt und in dieser Form aufgeführt:

          mail("Name des Empfaengers",
                "Betreff",
                "Dies ist nur eine Testnachricht.",
                 $bcc);

          Durch die Oben angesprochene Angabe im Browser habe ich nun Festgestellt das alles übergeben wird und wie von mir geplannt in der Variable $bcc die einzelnen Email Adressen übergeben werden..
          Ich denke das der Fehler im öffnen der Datei liegt und ich beim Splitten irgendwas Falsch mache, nur was?Laut Ausgabe werden alle Email adressen einzeln ausgelesen und das Trennzeichen ("|") ist auch weg.

          Cheatah

          C_buster_G

          1. Hi,

            Bezieht sich auf die Ausgabe im Browser..

            ignorieren, Quelltext angucken. Der Browser stellt i.d.R. HTML dar, HTML ist eine Interpretation der Daten und daher unerheblich.

            Finde also den Unterschied zwischen den eingelesenen und den hartkodierten Daten.

            Da ham wa auch schon das Problem ich seh da einfach keinen Unterschied,

            Auf was für Zeichen achtest Du denn? Buchstaben? Leerzeichen? Umbrüche? _Jedes_ Zeichen ist von Bedeutung.

            Cheatah

            1. Hi,

              Hi

              Finde also den Unterschied zwischen den eingelesenen und den hartkodierten Daten.

              Da ham wa auch schon das Problem ich seh da einfach keinen Unterschied,

              Auf was für Zeichen achtest Du denn? Buchstaben? Leerzeichen? Umbrüche? _Jedes_ Zeichen ist von Bedeutung.

              Die einzelnen Variablen werden im Quelltext --> $empfaenger, $test, $test <-- nur durchs komma getrennt..der sicherheit wegen lasse ich alle Leerzeichen vor und hinter den einzelnen Emails durch trim() entfernen Falsch? Weitere Zeichen habe ich dort nicht gesetzt.
              Hast du vieleicht nen guten Link zum Thema explode() und oder arrays?

              Cheatah

              C_buster_G

              1. Hi,

                Auf was für Zeichen achtest Du denn? Buchstaben? Leerzeichen? Umbrüche? _Jedes_ Zeichen ist von Bedeutung.

                Die einzelnen Variablen werden im Quelltext --> $empfaenger, $test, $test <-- nur durchs komma getrennt..

                laut </?m=96240&t=17144> gibt es am Ende sehr viele "Bcc:", welche definitiv _nicht_ durch Komma getrennt sind. Ich will auch nicht wissen, was Du im PHP-Code geschrieben hast, sondern was für ein Quellcode beim Browser ankommt. _Dort_ sollst Du auf jedes einzelne Zeichen achten - ganz besonders auf die, die Du _nicht_ selbst geschrieben hast.

                der sicherheit wegen lasse ich alle Leerzeichen vor und hinter den einzelnen Emails durch trim() entfernen Falsch?

                Nein, das ist völlig richtig so.

                Hast du vieleicht nen guten Link zum Thema explode() und oder arrays?

                http://www.php.net/manual/en/function.explode.php
                http://www.php.net/manual/en/language.types.array.php

                Cheatah