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

Discussione in 'PHP' iniziata da mircot80, 4 Febbraio 2013.

  1. mircot80

    mircot80 Nuovo Utente

    Registrato:
    4 Febbraio 2013
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    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
     
  2. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.035
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    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");
    ?>
     
  3. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.035
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    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
     
  4. mircot80

    mircot80 Nuovo Utente

    Registrato:
    4 Febbraio 2013
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    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
     
  5. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.035
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    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
     
  6. mircot80

    mircot80 Nuovo Utente

    Registrato:
    4 Febbraio 2013
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    0


    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
     
  7. mircot80

    mircot80 Nuovo Utente

    Registrato:
    4 Febbraio 2013
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    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: 5 Febbraio 2013
  8. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.035
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    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: 5 Febbraio 2013
  9. mircot80

    mircot80 Nuovo Utente

    Registrato:
    4 Febbraio 2013
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    0


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

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.035
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
  11. mircot80

    mircot80 Nuovo Utente

    Registrato:
    4 Febbraio 2013
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    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: 7 Febbraio 2013
  12. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.035
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    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
    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($codeFILTER_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
     
  13. mircot80

    mircot80 Nuovo Utente

    Registrato:
    4 Febbraio 2013
    Messaggi:
    27
    Mi Piace Ricevuti:
    0
    Punteggio:
    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.
     
  14. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.035
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    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
    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($codeFILTER_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
     
Sto caricando...

Condividi questa Pagina