Creazione di una pagina web per la cancellazione da una mailing list

mircot80

Nuovo Utente
4 Feb 2013
27
0
0
Salve,
Gestisco una mailing list, per la rimozione automatica l'utente può inviare un messaggio all'indirizzo "cancellami@miodominio.it" con oggetto "cancellami", dopo di che dal mio programma vado a scaricare le email inviate a questo indirizzo ed in automatico gli utenti vengono eliminati.
Il mio problema è che spesso gli utenti per qualche motivo che mi sfugge sbagliano la procedura, vorrei fare un link alla fine della email dove è possibile cliccare per cancellarsi automaticamente.
Il link dovrebbe contenere l'indirizzo email, aprire una pagina web che invia una email con mittente l'indirizzo da eliminare, destinanario "cancellami@...." e oggetto "Cancellami".
Non ho idea da vode partire per creare una pagina che faccia questo.
Qualcuno mi sa aiutare?
Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
ciao
puoi fare una pagina che riceva un link scritto sull'email link del tipo
<a href="http://www.tuo_sito.bb/cancellami.php?code=xcfrtytuvjr">cancellami</a>
e devi definire un code unico per ciascun iscritto
nella pag cancellami.php (che non deve essere accessibile) prelevi il code
semplificando
PHP:
<?php
//......
$code=$_GET['code'];//fai  le opportune verifiche che sia formalmente corretto
//connessione al db
$del=mysql_query("DELETE FROM utenti WHERE code='$code'");//o usi la classe PDO
header("location:index,php");
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
ciao
non mi ero accorto di una cosa:
il tuo post non riguarda html e css, ma un linguaggio dinamico dimmi cosa usi ? php o asp? che sposto nella sezione giusta
 

mircot80

Nuovo Utente
4 Feb 2013
27
0
0
ciao
non mi ero accorto di una cosa:
il tuo post non riguarda html e css, ma un linguaggio dinamico dimmi cosa usi ? php o asp? che sposto nella sezione giusta
Grazie per la risposta.
Non sono un programmatore, il sito è questo www.easy-jobs.it e l'ho fatto con website x5.
Le email le invio con un programma installato su un pc non collegato al sito, per questo motivo vorrei che la pagina web spedisca semplicemente una email all'indirizzo cancellami@.......

Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
ciao
non conosco website x5, ma da quello che so può creare anche siti dinamici e per fare quello che chiedi devi avere delle pagine dinamiche.
da quello che ho capito tu hai un programma che invia le email, da dove prende gli indirizzi? sono salvati in un database?
tra l'altro se il database è sul tuo pc e non in remoto nell'host dove risiede il tuo dominio non puoi far cancellare un indirizzo sul tuo pc (sarebbe tra l'altro oltremodo pericoloso)
se vuoi fare un link simile a quello che ti ho postato in modo che uno acceda ad una pagina (dinamica!!!) che ti invii un email è possibile, anche se secondo me macchinoso.
pero:
1) la pagina deve essere dinamica scritta in php o asp
2) la pagina deve risiedere nel tuo

altra soluzione: potresti fare un link da mettere nell'email che invii tipo
<a href="mailto:tua_email@pinco.it?subject=cancellami">cancellami</a>
dove l'utente cliccando sopra fa aprire, se c'e l'ha, il suo client di posta (es outlook) trovando il campo "oggeto" compilato e quindi solo dare invio

però la cosa migliore sarebbe fare quello che ti ho suggerito prima
 

mircot80

Nuovo Utente
4 Feb 2013
27
0
0
ciao
non conosco website x5, ma da quello che so può creare anche siti dinamici e per fare quello che chiedi devi avere delle pagine dinamiche.
da quello che ho capito tu hai un programma che invia le email, da dove prende gli indirizzi? sono salvati in un database?
tra l'altro se il database è sul tuo pc e non in remoto nell'host dove risiede il tuo dominio non puoi far cancellare un indirizzo sul tuo pc (sarebbe tra l'altro oltremodo pericoloso)
se vuoi fare un link simile a quello che ti ho postato in modo che uno acceda ad una pagina (dinamica!!!) che ti invii un email è possibile, anche se secondo me macchinoso.
pero:
1) la pagina deve essere dinamica scritta in php o asp
2) la pagina deve risiedere nel tuo

altra soluzione: potresti fare un link da mettere nell'email che invii tipo
<a href="mailto:tua_email@pinco.it?subject=cancellami">cancellami</a>
dove l'utente cliccando sopra fa aprire, se c'e l'ha, il suo client di posta (es outlook) trovando il campo "oggeto" compilato e quindi solo dare invio

però la cosa migliore sarebbe fare quello che ti ho suggerito prima


La soluzione con "<a href="mailto:tua_email@pinco.it?subject=cancellami">cancellami</a>" la uso attualmente ma molti hanno delle difficoltà, immagino dovute al fatto che utilizzano una webmail.

Provo a seguire il tuo suggerimento e ti faccio sapere.
Grazie
 

mircot80

Nuovo Utente
4 Feb 2013
27
0
0
Ho fatto diverse prove ma ho un problema che non riesco a capire la causa.

Ho creato il seguente file invioemail.php, se tento di eseguirlo con il seguente link non fa nulla!
http://192.168.1.9/invioemail.php?code=pippo@pluto.it

PHP:
<?php
$code=$_GET["code"];
$mittente = 'From: <'$code'> \r\n';
$destinatario = "info@trevisoassistenza.it";
$oggetto = "email di prova";
$messaggio = "Ecco la mia prima email";
mail($destinatario, $oggetto, $messaggio, $mittente);
?>

Per escludere problemi di server di posta, autenticazione, etc.. Ho provato il seguente codice e l'email mi arriva.

PHP:
<?php
$code=$_GET["code"];
$mittente = 'From: <a@b.c> \r\n';
$destinatario = "info@trevisoassistenza.it";
$oggetto = "email di prova";
$messaggio = "Ecco la mia prima email";
mail($destinatario, $oggetto, $messaggio, $mittente);
?>
Deduco che il problema sia sul passaggio della variabile ma non essendo un programmatore non so trovare l'errore.

Grazie
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
ciao
affinchè il link funzioni l'email deve essere in formato html, così come la invii tu è in formato testo e quindi il link non funzia.
se hai pazienza ti posto come devi fare

edit
ti sposto nella sez php
 
Ultima modifica:

mircot80

Nuovo Utente
4 Feb 2013
27
0
0
ciao
affinchè il link funzioni l'email deve essere in formato html, così come la invii tu è in formato testo e quindi il link non funzia.
se hai pazienza ti posto come devi fare

edit
ti sposto nella sez php


Ok grazie.
Questa mattina sono fuori ufficio, oggi posso fare altre prove...
Grazie
 

mircot80

Nuovo Utente
4 Feb 2013
27
0
0
Ho racchiuso "From: <$code>" tra doppi apici e funzione.
Ecco il codice finale:

PHP:
 <?php
$code.=$_GET["code"];
$mittente = "From: <$code>";
$destinatario = "info@trevisoassistenza.it";
$oggetto = "Cancellami";
$messaggio = "Email rimozione automatica";
mail($destinatario, $oggetto, $messaggio, $mittente);
?>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
ciao
scusa ma sono stato un po' impeganto.
per riprendere il discorso:
1) tu invii dele news letters a vari indirizzi email (es, mi limito a due, al sig pinco pinco@pinco.it e al sig pallino pallino@pallino.it)
2) ogni news dovrà avere
ciao pinco
bla bala bla.....
se vuoi cancellati rispondi alla presente con oggetto cancellami o clicca qui
ciao pallino
bla bala bla.....
se vuoi cancellati rispondi alla presente con oggetto cancellami o clicca qui
in entrambe il link qui dovra essere del tipo
per pinco
HTML:
<a haref="http://www.tuo_sito.it/cancellami.php?code=pinco@pinco.it">qui</a>
per pallino
HTML:
<a haref="http://www.tuo_sito.it/cancellami.php?code=pallino@pallino.it">qui</a>
se metti la pagina in una cartella apposita (meglio) ricordati di dargli il percorso es
HTML:
<a haref="http://www.tuo_sito.it/nome_cartella/cancellami.php?code=pallino@pallino.it">qui</a>
se come intuisco dall'indirizzo email che hai messo sarà
HTML:
<a haref="http://www.trevisoassistenza.it/nome_cartella/cancellami.php?code=pallino@pallino.it">qui</a>
nel tuo dominio crei la pag cancellami.php

PHP:
<?php
$code=$_GET["code"];
if(filter_var($code, FILTER_VALIDATE_EMAIL)){//conviene verificare che sia effettivamente un indirizzo email sintatticamente corretto (ti spiego sotto)
	$mittente = "From: <$code>";
	$destinatario = "info@trevisoassistenza.it";
	$oggetto = "Cancellami";
	$messaggio = "rimuovere l'indirizzo $code";
	mail($destinatario, $oggetto, $messaggio, $mittente);
}
header("location:index.php");
?>
in questo modo quanto l'utente cliccherà su qui verrà portato alla pag cancellami.php, ti viene inviata l'email e l'utente (quasi immediatamente) reindirizzato alla home del tuo sito, è importante che venga reinderizzato, è meglio che non abbia la possibilità di permanere sulla pagina.
poi conviene verificare che quanto trasmesso dal get sia effettivamente un indirizzo email in quanto, qualche maleintenzionato che venisse a scropire nome e indirizzo della pagina potrebbe scrivere sulla casella di comando del browser (metto degli spazi per non creare l'url)
http : // www .trevisoassistenza . it/nome_cartella/cancellami.php?questo_è_un_virus.exe e quindi potresti ricevere delle porcherie, così verificando che sia un indirizzo email si limitano gli inconvenienti
 

mircot80

Nuovo Utente
4 Feb 2013
27
0
0
Il dominio in questione non è il mio ma quello di un mio cliente, per il rsto è tutto esatto.
L'ho configurato ieri, funziona alla perfezione.
Grazie per l'aiuto.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
ciao, scusa mi è venuto in mente dopo
un piccolo suggerimento, se puoi farlo
nella newsletter quando il programma che usi per inviare legge l'indirizzo codificarlo con
bla bla bla
se vuoi cancellati rispondi alla presente con oggetto cancellami o clicca qui
cioè che il link venga formato da
HTML:
<?php
$cifrato=base64_encode($indirizzo_destinatario);
?>
<a haref="http://www.tuo_sito.it/nome_cartella/cancellami.php?code=<?php echo  $cifrato;?>">qui</a>
poi
PHP:
 <?php
$code=base64_decode($_GET["code"]);
if(filter_var($code, FILTER_VALIDATE_EMAIL)){//conviene verificare che sia effettivamente un indirizzo email sintatticamente corretto (ti spiego sotto)
    $mittente = "From: <$code>";
    $destinatario = "info@trevisoassistenza.it";
    $oggetto = "Cancellami";
    $messaggio = "rimuovere l'indirizzo $code";
    mail($destinatario, $oggetto, $messaggio, $mittente);
}
header("location:index.php");
?>
è una codifica molto semplice e qualche esperto puo decodificare, però può trarre in inganno, come saprai il link con la query è visibile
senza base64 l'utente vede nella barra in basso al browser

www . tuo_sito.it/nome_cartella/cancellami.php? code=pallino@pallino.it

mentre con base64

www . tuo_sito.it/nome_cartella/cancellami.php? code=BlbmNvZGVk=IHN0cmluZw=

o una serie di caratteri simili, quindi può non capire cosa vine inviato

evidente che puoi farlo solo se puoi modificare o il programma di invio o newsletter