Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] wysyłanie kilku emaili
--Maciek1705--
post
Post #1





Goście







Witam wszystkich serdecznie otóż mam takie pytanie z problemem, niedawno przyszło mi zrobić dość ciekawy skrypt musi on wysyłać 2 różne wiadomości do 2 różnych adresatów na raz. Dotychczas korzystałem z klasy phpmailer do wysyłania kilku tych samych sztuk lub pojedynczych wiadomości. Próbowałem więc napisać ten skrypt z pomocą phpmailer i powstało coś takiego:
  1. <?php
  2. header('Content-Type: text/html; charset=utf-8');
  3.  
  4. $name = $_POST['name'];
  5. $email = $_POST['email'];
  6. $weight = $_POST['weight'];
  7. $unit = $_POST['unit'];
  8. $sex = $_POST['sex'];
  9. $height = $_POST['height'];
  10. $old = $_POST['old'];
  11. $dream_weight = $_POST['dream_weight'];
  12.  
  13. //first email
  14. require("PHPMailer/class.phpmailer.php"); //zalaczenie klasy php
  15. $mail = new PHPMailer();
  16. $mail->IsMail(); //
  17. //$mail_s->IsSMTP(); //deklaracja klasie uzycia serwera SMTP
  18. //$mail_s->Host = "poczta.pl"; //serwer SMTP
  19. //$mail_s->SMTPAuth = true; //wlaczona autoryzacja SMTP
  20. //$mail_s->Username = ''; //SMTP login
  21. //$mail_s->Password = ''; //SMTP haslo
  22. $mail->AddReplyTo($email, $name);
  23. $mail->AddAddress("example@vp.pl"); //adres odbiorców 1 odbiorcy
  24. $mail->SetFrom($email, $name);
  25. $mail->Subject = "Profil dietetyczny - potwierdzenie wysłania wiadomości"; //tytul wiadomosci
  26. $mail->Body = "Dziękujemy za wysłanie wiadomości. Wkrótce się z Państwem skontaktujemy"; //tresc wiadomosci
  27. $mail->WordWrap = 50;
  28. $mail->CharSet = "utf-8"; //strona kodowa
  29.  
  30. if(!$mail->Send())
  31. {
  32. echo 'Message was not sent.';
  33. echo 'Mailer error: ' . $mail->ErrorInfo;
  34. }
  35. else
  36. {
  37. echo 'Wiadomość została wysłana.';
  38. }
  39.  
  40.  
  41. $body = "waga: ".$weight.$unit." preferowana waga: ".$dream_weight;
  42. $body .= "płeć: ".$sex;
  43. $body .= "wzrost: ".$height;
  44. $body .= "wiek: ".$old;
  45.  
  46. //second email
  47. require("PHPMailer/class.phpmailer.php"); //zalaczenie klasy php
  48. $mail2 = new PHPMailer();
  49. $mail2->IsMail(); //
  50. //$mail_s->IsSMTP(); //deklaracja klasie uzycia serwera SMTP
  51. //$mail_s->Host = "poczta.pl"; //serwer SMTP
  52. //$mail_s->SMTPAuth = true; //wlaczona autoryzacja SMTP
  53. //$mail_s->Username = ''; //SMTP login
  54. //$mail_s->Password = ''; //SMTP haslo
  55. $mail2->AddReplyTo($email, $name);
  56. $mail2->AddAddress("example@vp.pl"); //adres 2 odbiorcy
  57. $mail2->SetFrom($email, $name);
  58. $mail2->Subject = "Profil dietetyczny - wiadomość ze strony"; //tytul wiadomosci
  59. $mail2->MsgHTML($body); //tresc wiadomosci
  60. $mail2->WordWrap = 50;
  61. $mail2->CharSet = "utf-8"; //strona kodowa
  62.  
  63. if(!$mail2->Send())
  64. {
  65. echo 'Message was not sent.';
  66. echo 'Mailer error: ' . $mail2->ErrorInfo;
  67. }
  68. else
  69. {
  70. echo 'Wiadomość 2 została wysłana.';
  71. }
  72. ?>


pierszwa wiadomość wysyła się bez problemu natomiast kolejna już nie. Będę wdzięczny za sugestie i pomoc w tej sprawie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bluzmen
post
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 20.02.2011

Ostrzeżenie: (0%)
-----


Ja się podłącze z moim kodem i moim problemem do tego postu. Chodzi o to, że wysyłam np. do 3 adresatów pobranych z bazy tą pętlą i do każdego z nich dochodzą 3 maile (takie same). Tylko w polu adresów u odbiorcy pojawiają się w pierwszym mailu 3 adresy (z bazy), drugim 2 adresy i w trzecim 1 adres. Czyli razem wysyła 9 listów do wszystkich adresatów. Co robię źle?

  1. require_once('class.phpmailer.php');
  2.  
  3. $polaczenie = mysql_connect("localhost", "login", "haslo") or die ("Nie masz uprawnien");
  4. mysql_select_db("moja_baza") or die ("Nie masz uprawnien");
  5. mysql_query ("SET NAMES 'utf8'");
  6.  
  7. $mail = new PHPMailer();
  8.  
  9. $mail->Priority = "3";
  10. $mail->CharSet = "utf-8";
  11. $mail->ContentType = "text/plain";
  12. $mail->Encoding = "8bit";
  13. $mail->From = "moja@poczta.pl";
  14. $mail->FromName = "bluzmen";
  15. $mail->Subject = $_POST['Temat'];
  16. $mail->Body = $_POST['Tresc'];
  17. $mail->Mailer = "smtp";
  18. $mail->Host = "poczta.smtp.pl:587";
  19. $mail->Port = 587;
  20. $mail->Username = "moja@poczta.pl";
  21. $mail->Password = "*******";
  22. $mail->SMTPKeepAlive = true;
  23. $mail->SMTPAuth = true;
  24. $mail->SetLanguage("pl", "language/");
  25.  
  26. $adresat = mysql_query("SELECT adresy FROM mailer") or die(mysql_error());
  27.  
  28. while ($rekord = mysql_fetch_array($adresat)) {
  29. $mail->AddAddress($rekord);
  30.  
  31. if($mail->Send()) {
  32. echo "E-mail do ".$rekord['adresy']." został wysłany<br/>";
  33. } else {
  34. echo "E-mail do ".$rekord['adresy']." nie mógł zostać wysłany, przyczyna :".$mail->ErrorInfo."<br/>";
  35. $mail->ClearAddresses();
  36. }
  37. }
  38. $mail->SmtpClose();



Ten post edytował bluzmen 9.03.2011, 21:22:43
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 13:52