Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PHP mailer
Forum PHP.pl > Forum > Przedszkole
NoSleep2
Cześć, mam problem z mailem.
Po skrócie około 700+ adresów e-mail jest ściągane z bazy danych.
Problem polega na :


mój skrypt wygląda tak :
  1. <?php
  2. require('class.phpmailer.php');
  3. include ('class.smtp.php');
  4. require ('PHPMailerAutoload.php');
  5.  
  6.  
  7. $mail = new PHPMailer();
  8. $mail->PluginDir = "";
  9. $mail->From = "cosl";
  10. $mail->FromName = "cos";
  11. $mail->CharSet = "UTF-8";
  12. $mail->ContentType = "text/html";
  13. $mail->Host = "smtpl";
  14. $mail->Mailer = "smtp";
  15. $mail->Username = "loginl"; // login
  16. $mail->Password = "haslo"; // haslo
  17. $mail->SMTPAuth = true;
  18. $mail->Port = 'port';
  19. $mail->SetLanguage("pl", "phpmailer/language/");
  20.  
  21. $miechy = array(
  22. 1 => 'Styczeń',
  23. 2 => 'Luty',
  24. 3 => 'Marzec',
  25. 4 => 'Kwiecień',
  26. 5 => 'Maj',
  27. 6 => 'Czerwiec',
  28. 7 => 'Lipiec',
  29. 8 => 'Sierpień',
  30. 9 => 'Wrzesień',
  31. 10 => 'Październik',
  32. 11 => 'Listopad',
  33. 12 => 'Grudzień',
  34. );
  35.  
  36. $mail->Subject = 'Faktura za miesiąc '.$miechy[date('n')]; // temat
  37. $mail->Body = 'tresc'; // tresc
  38.  
  39.  
  40.  
  41.  
  42. MYSQL_CONNECT("localhost","***","***") or die (mysql_error());
  43. $query = "SELECT id,name,lastname,email FROM tabela";
  44. $result = MYSQL_QUERY($query) or die (mysql_error());
  45.  
  46. while ($row = mysql_fetch_array($result)) {
  47. if($row['email'] !== ''){
  48. print_r($row['email'].'<br>');
  49. // $mail->AddAddress($row["email"], $row["name"]);
  50. // $mail->AddStringAttachment('sciezka', "nazwa");
  51. }
  52. }
  53. if($mail->Send()){
  54. echo 'E-mail został wysłany';
  55. }else{
  56. echo 'E-mail nie mógł zostać wysłany, przyczyna :'. $mail->ErrorInfo;
  57. }
  58.  
  59. $mail->ClearAddresses();
  60. $mail->ClearAttachments();
  61. ?>


Jak zrobić aby w tym jednym zapytaniu podczas wysyłania do wszystkich klientów maila nie pokazywały się maile od innych klientów w nagłówku "Do".
Tomplus
służy do tego metoda AddBCC()

  1. $list = array(); // tutaj emaile które mają być nie widoczne
  2. foreach($list as $m){
  3. $mail->AddBCC($m);
  4. }
NoSleep2
Czyli tak po skrócie :

  1. foreach($row = mysql_fetch_array($result) as $m){
  2. $mail->AddBCC($m);
  3. }
Tomplus
W twoim wypadku nie, bo powinno być $m['email']
NoSleep2
dzięki wielkie już to mam trochę zmieniłem na while bo mi łatwiej ale wszystko działa ok !

ale teraz mam z załącznikiem problem, wysyłam do klientów faktury (faktura rzecz prywatna, dane klienta itp.) i jest praktycznie to samo co z do.
tutaj screen:

Tomplus
Załączników nie da się wysłać w ten sposób. Każdy dostanie to samo, więc jeżeli już, to musisz zapętlać funkcje.

  1. while () {
  2. $mail->Subject = 'Faktura za miesiąc '.$miechy[date('n')]; // temat
  3. $mail->Body = 'tresc'; // tresc
  4. $mail->AddAddress($row["email"], $row["name"]);
  5. $mail->AddAttachment('sciezka', "nazwa");
  6. if ($mail->Send())
  7. {
  8. // send
  9. }
  10. $mail->ClearAddresses();
  11. $mail->ClearAttachments();
  12. }
NoSleep2
Super działa tylko teraz plik .PDF zajmują ~5B, coś chyba mało tak mi się zdaje tongue.gif


@EDIT

DOBRA JUŻ NAPRAWIŁEM TO. smile.gif
Tomplus
Miałeś 14B, teraz 5B czyli tyle co nazwa. A same pliki są puste.

Po prostu użyta została zła funkcja pobierania załączników, powinna być: $mail->AddAttachment('sciezka', "nazwa");
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.