+ Antworten
Ergebnis 1 bis 9 von 9

php script für importiern von csv datei in einen email script

Eine Diskussion über php script für importiern von csv datei in einen email script im Forum Technik Ecke. Teil des Off Topic-Bereichs; hallo leute ist es irgendwie möglich das man den php einen befehl gibt das es zb emails aus einer csv ...

  1. #1
    Oberstabsgefreiter
    Avatar von Bohseronkel
    Registriert seit
    30.04.2009
    Alter
    28
    Beiträge
    643
    Name
    Franz
    Nick
    Bohseronkel

    php script für importiern von csv datei in einen email script

    hallo leute ist es irgendwie möglich das man den php einen befehl gibt das es zb emails aus einer csv oder txt datei lesen soll und dan gleich verwendet ?

    (dient zum massen email versand wegen newsletter)


    also zum beispiel wie das ich ihn den pfad angeben kan und nicht immer einzeln reinhaun muss

  2. #2
    Feldwebel
    Avatar von sHiRoKKo
    Registriert seit
    18.05.2007
    Alter
    27
    Beiträge
    1.017
    Clans
    [uG]
    Du solltest mal versuchen dein Problem in einzelne Teil-Probleme zu zerlegen und nicht alles auf einmal machen. Suche nicht nach einer allmächtigen Funktion die eine CSV-Datei liest und dann E-Mails schickt, mache eins nach dem anderen:

    - Wie kann ich eine CSV-Datei öffnen?
    - Wie lese ich die Werte darin bzw. Trenne die Werte voneinander?
    - Wie schreibe ich E-Mails mit PHP (und wo kommt da die E-Mail Adresse ins Spiel)?

    Wenn du das gelöst hast ist der Rest (E-Mail Adresse in einer Schleife durch gelesene Werte ersetzen) ein Kinderspiel.

    CSV-Dateien hab ich noch nie gelesen aber es sind ja nur Textdateien, hier sollte file_get_contents() schon reichen. Die Werte trennen sollte mit explode() o.Ä. funktionieren. Zum E-Mails Schreiben guckst du dir am besten mal die mail()-Funktion an.

    Bei HTML-E-Mails oder E-Mails mit Anhang benutzt du am besten ein Framework wie PHPMailer. Tutorials dazu sind normalerweise beim Download dabei.

  3. #3
    Oberstabsgefreiter
    Avatar von Bohseronkel
    Registriert seit
    30.04.2009
    Alter
    28
    Beiträge
    643
    Name
    Franz
    Nick
    Bohseronkel
    ich danke dir vielmals für deine antwort ^^ ich probiers mal aus und doofe frage wegen den schleifen welche is da besser dowhile oder while oO?

    € danke hat wunderbar funktioniert nur muss ich noch rausfinden wie ich das auf Bcc stelle
    danke dir
    Geändert von Bohseronkel (16.01.2010 um 00:21 Uhr)

  4. #4
    Für CSV-Dateien gibt es eine spezielle PHP Funktion http://de2.php.net/manual/de/function.fgetcsv.php

    Ansonsten hat sHiRoKKo schon das wichtigste angesprochen. Falls du den Weg über ein Mail Framework umgehen willst, so sind sicherlich die Kommentare und zugehörigen RFCs unter http://de2.php.net/manual/de/function.mail.php hilfreich.

    Wie man ebenso anhand der Beispiele sieht, musst du für BBC nur
    Code:
    'Bcc: name@example.com' . "\r\n";
    in den Header einfügen.

    ###

    Zitat Zitat von Bohseronkel Beitrag anzeigen
    ich danke dir vielmals für deine antwort ^^ ich probiers mal aus und doofe frage wegen den schleifen welche is da besser dowhile oder while oO?
    Der Unterschied zwischen den beiden Schleifen ist, dass bei einer Do-While-Schleife Schleife der Codeblock zunächst ausgeführt wird und danach erst die While-Bedingung geprüft wird. Es wird also immer min. einmal ausgeführt.
    Im Gegensatz dazu wird bei einer While-Schleife zunächst die While-Bedingung geprüft und danach erst der Code ausgeführt.

    Welche nun sinniger ist liegt dabei ganz an deinem Quellcode.

  5. #5
    Oberstabsgefreiter
    Avatar von Bohseronkel
    Registriert seit
    30.04.2009
    Alter
    28
    Beiträge
    643
    Name
    Franz
    Nick
    Bohseronkel
    danke für deine antwort und den Bcc hau ich dan einfach so in den wo er das einliest oder dort wo er die daten ausgibt o.O? wenst wilst schick ich dir mal das zeug per pm das wir das mal bereden könen ^^ danke dir

  6. #6
    Genau den Headerzusatz fügst du einfach in die mail-Funktion unter $additional_headers (4. Paramteter) ein.
    Wichtig ist nur, dass du auf den Zeilenumbruch am Ende des Headers achtest.

  7. #7
    Oberstabsgefreiter
    Avatar von Bohseronkel
    Registriert seit
    30.04.2009
    Alter
    28
    Beiträge
    643
    Name
    Franz
    Nick
    Bohseronkel
    pfuh du könten wir sich da per pm zusamenreden ? wär sehr hilfreich ^^ <-- bin neu in php changre

  8. #8
    Ich denke ich mach dir einfach mal ein einfaches Beispiel, dann ist es gleich was für jeden

    Also zunächst benötigen wir für deinen Fall eine CSV-Datei.

    Um eine Zeile dieser Datei zu verarbeiten gibt es wie schon gesagt die PHP FUnktion fgetcsv.

    Angenommen deine Datei ist in folgendem Format:
    Code:
    Klaus,Meier,klaus.meier@host.de
    Egon,Krust,fade12@host.de
    Inge,Neumann,ingeborg@host2.de
    Dann könnte man es wie folgt schreiben:
    1. <?php
    2. try
    3. {
    4. $filepath = './dateiname.csv';
    5.  
    6. $mailfrom = 'webmaster@example.com';
    7. $mailreceiver = 'root@world.org';
    8. $mailsubject = 'Nur so';
    9. $mailmessage = 'Hallo du!';
    10.  
    11. if(is_readable($filepath))
    12. {
    13. $mode = 'r';
    14. $handle = fopen($filepath, $mode);
    15.  
    16. if(is_resource($handle))
    17. {
    18. $mailheader =
    19. 'From: ' . $mailfrom . "\r\n" .
    20. 'X-Mailer: PHP/' . phpversion();
    21.  
    22. $mailbcc = array();
    23. while (!feof($handle))
    24. {
    25. $row = fgetcsv($handle);
    26.  
    27. /*
    28. $row[0] beinhaltet den Vornamen
    29. $row[1] beinhaltet den Nachnamen
    30. $row[2] die E-Mail-Adresse
    31. */
    32.  
    33. // Vorname Name <E-Mail-Adresse>
    34. $mailbbc[] = $row[0] . ' ' $row[1] . ' <' . $row[2] . '>';
    35. }
    36. fclose($handle);
    37.  
    38. if(count($mailbcc) > 0)
    39. {
    40. $mailheader .= "\r\n" . 'Bcc: ' . implode(', ', $mailbcc);
    41.  
    42. if(!mail($mailreceiver, $mailsubject, $mailmessage, $mailheader))
    43. {
    44. throw new Exception('Can\'t send mail.');
    45. }
    46. }
    47. else
    48. {
    49. throw new Exception('Can\'t find a receiver.');
    50. }
    51. }
    52. else
    53. {
    54. throw new Exception(sprintf('Cannot open file "%s" with mode "%s".', $filepath, $mode));
    55. }
    56. }
    57. else
    58. {
    59. throw new Exception(sprintf('The file "%s" doesn\'t exist or isn\'t readable.', $filepath));
    60. }
    61. }
    62. catch(Exception $e)
    63. {
    64. echo (string) $e;
    65. }
    Dies ist nur so runtergeschreiben und wurde von mir nicht getestet.

    Ich denke wenn du dir diese Zeilen einmal durchliest und verstanden hast was dort passiert, dann sollte es für dich kein Problem sein es nach deinen Wünschen anzupassen

  9. #9
    Oberstabsgefreiter
    Avatar von Bohseronkel
    Registriert seit
    30.04.2009
    Alter
    28
    Beiträge
    643
    Name
    Franz
    Nick
    Bohseronkel
    ah danke jezt raffs ichs erst wie du das gemeint hatest mit dem header ^^ danke dir

+ Antworten

Ähnliche Themen

  1. Anmelde Script !
    Von cebudom im Forum Technik Ecke
    Antworten: 37
    Letzter Beitrag: 13.04.2007, 20:28
  2. Download Script
    Von xxxG1xxx im Forum Technik Ecke
    Antworten: 6
    Letzter Beitrag: 13.06.2006, 22:45
  3. vBulletin Script
    Von Theslar im Forum Technik Ecke
    Antworten: 19
    Letzter Beitrag: 02.01.2003, 13:20
  4. UF IRC Script
    Von FLoorfiLLa im Forum Technik Ecke
    Antworten: 7
    Letzter Beitrag: 09.12.2002, 18:25
  5. php script wanted
    Von FiX im Forum Technik Ecke
    Antworten: 3
    Letzter Beitrag: 09.09.2002, 21:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •