Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] usunięcie z newslettera
Forum PHP.pl > Forum > Przedszkole
dstp
piszę prosty newsletter, ale mam problem z generowaniem linku do wypisania się z niego. W mailu, który wysyłam jako mailing pod tekstem mam "Aby wypisać się z newslettera, kliknij na poniższy link:<br />http://mojastrona.pl/?newsletter_out=$email". I problem w tym, że link wygląda np. tak:

Kod
http://mojastrona.pl/?newsletter_out=email@example.net,przykladowy@mail.net

A chodzi mi o to żeby w newsletter_out był tylko email, tej osoby na której został wysłany maling.

Przy wysyłaniu mailingu mam tak:
  1. <input type="checkbox" name="email" value="wartosc_z_bazy" />
  2. <input type="checkbox" name="email" value="wartosc_z_bazy" />

I kod PHP:
  1. $email = $_POST['email'];
  2. $email = implode($email,",");
  3. mail($email, '', '', '');

Maile dochodzą, problem jest tylko przy ich usuwaniu...
nospor
Bo mail panie kolego wysyła się do każdej osoby oddzielnie a nie jeden mail do tysiąca osób.
wizu
Musiałbyś wysyłać każdego maila osobno.

Myślę, że lepszym rozwiązaniem będzie przesłanie userowi w mailu zawsze takiego samego linka, np. do podstrony usun.php, bez żadnych parametrów, a na tej podstronie wyświetlasz formualrz np. "Wpisz swój adres e-mail aby się wypisać".
Poźniej tylko odbierasz dane i usuwasz co trzeba. Czysto i wygodnie wink.gif
dstp
Cytat(nospor @ 18.01.2012, 14:53:45 ) *
Bo mail panie kolego wysyła się do każdej osoby oddzielnie a nie jeden mail do tysiąca osób.


a nie da się tego jakoś połączyć? przecież mam tablice z mailami, tylko nie wiem jak to ze sobą połączyć.

A jak są niby napisane newslettery? nie mówię tu o jakiś pro bo ten mój ma służyć do wysyłaniu kilkudziesięciu maili, a zadziała bo próbowałem wysłać 100 wiadomości funkcją mail, ale na 1 email.
nospor
Każdy mail zawierac bedzie inna tresc - inny link to już inna tresc - musisz wiec slac go do kazdej osoby oddzielnie.
dstp
Cytat(nospor @ 18.01.2012, 15:04:02 ) *
Każdy mail zawierac bedzie inna tresc - inny link to już inna tresc - musisz wiec slac go do kazdej osoby oddzielnie.


chyba ci się coś pokręciło... dla przykładu jak dam rand(0,100) w treści maila to w każdym mailu mam inną wartość, a maile dochodzą do każdego użytkownika którego wybiorę w checkboxie
piotrooo89
to powiedz mi skąd będziesz wiedział że wysłałeś do danej osoby i tą osobę musisz ewentualnie wyciąć z bazy?
dstp
to może te implode można czymś zastąpić?
nospor
Cytat
chyba ci się coś pokręciło...
A faktycznie.... obiecałem sobie żę nie będę już gadał z laikami ale mi się pokręciło i gadam z Tobą. Już naprawiam ten błąd - żegnam smile.gif

Cytat
dla przykładu jak dam rand(0,100) w treści maila to w każdym mailu mam inną wartość, a maile dochodzą do każdego użytkownika którego wybiorę w checkboxie
Tak, tak, oczywiście.... a świstak siedzi i zawija sreberka
Rysh
Ja bym Ci proponował dodać do tabeli newslettera jedną kolumnę, mianowicie delate_key i w meilu dajesz:
  1. $body .= "Kliknij <a href=\"http://domena.pl/newsletter.php?del=". $user['delate_key'] ."\" >tutaj</a>, aby wypisać się z newslettera.";

I odbierać:
  1. if(isset($_GET['del'])) {
  2. mysql_query("DELETE FROM newsletter WHERE delete_key='". $_GET['del'] ."');
  3. }

I po problemie.
piotrooo89
musisz wysyłać do każdego osobno spreparowanego maila, nie ma siły żeby spersonalizować maila bez jego obróbki!
dstp
Cytat(Rysh @ 18.01.2012, 15:26:08 ) *
Ja bym Ci proponował dodać do tabeli newslettera jedną kolumnę, mianowicie delate_key i w meilu dajesz:
  1. $body .= "Kliknij <a href=\"http://domena.pl/newsletter.php?del=". $user['delate_key'] ."\" >tutaj</a>, aby wypisać się z newslettera.";

I odbierać:
  1. if(isset($_GET['del'])) {
  2. mysql_query("DELETE FROM users WHERE delete_key='". $_GET['del'] ."');
  3. }

I po problemie.


nie w tym problem, to wiem jak zrobić.

Zrobiłem foreach zamiast tego implode i teraz działa mi wszystko, ale nie wiem jak dodać wartość (delete_key) w treści wiadomości...
  1. $msg = $wiadomosc . '<br />'.$link.'';

$link pobieram tak jak wyżej napisał Rysh.

Tak wysyłam:
  1. foreach($email as $ee) {
  2. @mail($ee, $thread, $msg, $content);
  3. }
Rysh
Cytat(dstp @ 18.01.2012, 15:34:51 ) *
ale nie wiem jak dodać wartość (delete_key) w treści wiadomości...

No kurde, nie rozumiem Twojego problemu.
Na moją głowę to coś w ten deseń:

  1. $sql = mysql_query("SELECT * FROM newsletter");
  2.  
  3. $temat = "temat meila";
  4. $wiadomosc = "wiadomosc newslettera bla bla bla <br />\n i inne takie \n <br />";
  5.  
  6. while ($row = mysql_fetch_assoc($sql)) {
  7. $messages = $wiadomosc;
  8. $messages .= "Kliknij <a href=\"http://domena.pl/newsletter.php?del=". $row['delate_key'] ."\" >tutaj</a>, aby wypisać się z newslettera.";
  9. mail($row['email'], $temat, $messages);
  10. }

Takie trudne?
dstp
;o

nie pomyślałem
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.