Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [class] phpmailer w formularzu kontaktowym z kopią dla użytkownika
Forum PHP.pl > Forum > Gotowe rozwiązania
Arti79
Witam,

Chciałbym wykorzystać phpmailer do formularza kontaktowego, ale nie wiem jak dołączyć wysyłanie kopii wiadomości do użytkownika jeżeli zaznaczy checkbox że chce otrzymać kopię danych wpisanych w formularzu.

Problem polega na tym, że chciałbym rozbić wysyłkę na dwa emaile tak żeby użytkownik nie wiedział gdzie poszedł e-mail poza kopią którą on otrzyma, standardowo wpisuję

$mail->AddAddress("email1@test.pl", "Ja");
$mail->AddAddress($email_z_formularza, $imie_z_formularza);

ale wtedy jedna wiadomość ma w polu do dwa e-maile.

Jak wykorzystać klasę phpmailer w formularzu kontaktowym, żeby użytkownik otrzymywał kopię danych wpisanych w formularzu jeżeli zaznaczy taką chęć poprzez checkbox, a dodatkowo żeby były wysyłane dwa e-maile tak żeby użytkownik nie miał w polu do swojego e-maila i mojego ?

W miarę potrzeb mogę wrzucić trochę kodu formularza

Z góry dziękuję za pomoc

Pozdrawiam
Artur
mike
Na przyszłość warto zapoznać się z innymi metodami w klasie.
Pewnie zainteresują Cię PHPMailer::AddCC() i PHPMailer::AddBCC() tongue.gif
Arti79
Nie do końca... znam AddCC() i AddBCC(), ale wolałbym wrzucić np. swój adres i adres podany w formularzu do tablicy, a później jakąś pętelką wrzucić je do AddAddress, chciałbym trochę przerobić treści wysyłane do mnie i jako kopię do użytkownika, np. treści wysyłanej do mnie byłby dodatkowo adres ip użytkownika który wysłał wiadomość poprzez formularz... mam nadzieje że teraz jasno napisałem...

  1. <?php
  2. $query  = "SELECT em_adres_email FROM tabela";
  3.  
  4. $result = mysql_query($query);
  5.  
  6. while ($row = mysql_fetch_array ($result))
  7. {
  8.  
  9. $mail->AddAddress($row["em_adres_email"], $row["em_adres_email"]);
  10.  
  11. }
  12. ?>


Coś podobnego robię wysyłając e-mailing z bazy mysql, a jak takie coś zrobić na tablicy dla dwóch e-mail (mojego i wpisanego przez użytkownika w formularzu) questionmark.gif

Pozdrowienia
Artur
camikazee
Rozwiązań jest kilka, wymienię cztery:

1. Możesz stworzyć drugi obiekt
2. Możesz dodać jednego odbiorcę, wysłać maila, następnie wykasować odbiorców metoda ClearAddresses, znów dodać odbiorcę (siebie) dodać drugą treść (Body) i wysłać (czysto teoretyczne rozważanie, bo nie próbowałem)
3. Skorzystać z funkcji mail() smile.gif Myślę, że na potrzeby formularza będzie to wystarczające, budujesz dwa stringi z oddzielnymi treściami i wysyłasz
4. Korzystasz z prostszej klasy
Arti79
A możesz coś więcej napisać o pkt. 1 i 2 ?

Wolałbym skorzystać właśnie z tej klasy...
nospor
ojj... no chyba dość zrozumiale napisal.
1) Dodajesz pierwszego adresata
2) wysylasz maila
3) czyscisz dodanego adresata - ClearAdresses
4) Dodajesz kolejnego adresata
5) znowu wysylasz maila


ps:
Cytat
4. Korzystasz z prostszej klasy

PHPMailer jest naprawde prostą klasą
Arti79
oki, czyli mniej więcej tak:

  1. <?php
  2. $mail->AddAddress("moj_email@email.pl", "Ja");
  3.   if($mail->Send()) {
  4.   echo "wysłane";
  5.  } else {
  6.  echo "błąd";
  7. }
  8. $mail->ClearAddresses();
  9.  
  10.  
  11. $mail->AddAddress("user_email@email.pl", "User");
  12.   if($mail->Send()) {
  13.   echo "wysłane";
  14.  } else {
  15.  echo "błąd";
  16. }
  17. $mail->ClearAddresses();
  18. ?>
nospor
Te ostatnie ClearAddresses jest zbedne. Przeciez juz wiecej nic nie wysylasz winksmiley.jpg
Arti79
Spróbuję tak jak napisałem wyżej po waszych sygestiach, bez ostatniego ClearAddresses.

Dziękuję nospor i camikazee za pomoc.
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.