Pagina 1 di 11 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 107
  1. #1

    Gestire invii multipli con funzione mail()

    Salve, sto creando un programmino personalizzato (e semplicissimo) per l'invio di newsletter agli iscritti in un sito. Gli iscritti sono circa 500 e possono aumentare in poco tempo.

    Mi spiegate (o linkate a una bella guida in italiano) come si gestisce l'invio a molti?
    ...ho letto qualcosa in giro qui per il forum, ma c'è sempre di mezzo l'uso di una classe (mi pare phpmailer) che io non uso...

    Tra le tabelle del Db c'è la classica "utenti" con l'anagrafica e quindi l'indirizzo email.


    PS: Se serve a qualcosa... sono anche il root del server (linux+apache+mysql+php...)


    Grazie mille
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Beh per l'invio delle email hai la funzione std mail() di php. Le lib a cui ti riferisci sono estensioni di tale funzione. Con codice agggiuntivo che consente di aggiungere allegati fare la mail in formatio html etc semplicemente settando i campi dell'oggetto.

    Tra l'altro se dai un occhio qui trovi un'ottima classe per gestire le mail.

    Per quanto riguarda gli invvi devi stare attento al limite max. Ogni server smtp ha le sue impostazioni e per evitare spam ti bloccano dopo un certo tot.

    Per cui se hai intenzione di spedire una mail per ogni user salvato nel tuo db devi fare attenzione che il server stmp nn ti blocchi e inoltre che il tempo che ci metti sia inferiore al timeout della pagina settato su apache.

    Senno puoi inviare una mail con tutti i contatti in bcc.

    Vedi te.


  3. #3
    l'unica cagata è che mettendo i contatti in bcc, a chi arriva, vede comunque come destinatario il mittente originario, e non se stesso, quindi poco professionale...
    Risolvibile però se come destinatario principale metti un nome tipo:

    "Agli iscritti"..
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Si beh vero ma invii una mail unica invece di 500 alla fine dipende se ce la fai ad inviarle tutte.

    Senno le invii a tranche.

    ne invviii 100 poi le altre 100 etc .

  5. #5
    Infatti.. Non credo che per una newsletter sia tanto indispensabile inviare una email per ogni utente... Anzi.. La soluzione da te proposta è senza dubbio la migliore. L'importante è sapere cosa succede, perchè a fare le prove con la propria email, questo particolare non si nota. Almeno da sapere come fargli il giro

    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  6. #6
    Quindi... diciamo che la mia query è tipo "select id,email from tb_utenti".
    Io avevo già pensato di fare quello che mi sconsigliate, e cioè una cosa così:
    Codice PHP:
    Ciclo_WHILE
    {
       
    mail($row[email], $oggetto$messaggio ...);

    Mi sembra di capire sia meglio così
    Codice PHP:
    $bcc .= "";
    Ciclo_WHILE
    {
       
    $bcc .= "$row[email],";
    }
    mail(QUI_che_ci_va?, $oggetto$messaggio$bcc ...); 
    Correggetemi se sbaglio... e sbaglierò!!

    Ma non ho capito come gestire i "numeri" delle limitazioni del server e gli invii "scaglianati" (che immagino vadano fatti con qualsiasi delle due soluzioni...
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    OK allora la soluzione bcc ti consente di inviare una mail unica al server smtp.
    Il serve poi si occupa di reindirizzare ai tutti i contatti segnati nel campo bcc una copia della mail.

    Se invece invii una mail per ogni contatto devi considerare quanto tempo ci mette.
    Le pagine php hanno un timeout che dipende dalla configurazione del server http.
    Quindi se devi inviare molte email potrebbe andare in timeout la pagina e non inviare tutte le email.

    per evitare cio' dovresti aggiungere una flag o un tabella mail inviate etc che controlli per inviare le email a pezzi. Cioe' invii 100 mail ora, poi dopo mezzora clicchi di nuovo e invia altre 100 mail.

    Per l'invio delle email ti consiglio di usare la classe che ti avevo linkato sopra (quella su php guru) che ti gestisce gia' in automatico i bcc etc....

  8. #8
    Vorrei fare un paio di prove...
    Originariamente inviato da Virus_101
    OK allora la soluzione bcc ti consente di inviare una mail unica al server smtp.
    Il serve poi si occupa di reindirizzare ai tutti i contatti segnati nel campo bcc una copia della mail.
    Cioè, se uso questa soluzione non devo preoccuparmi di nulla?
    E cosa dovrei mettere nel primo campo (quello del destinatario "A:")?


    Originariamente inviato da Virus_101
    Per l'invio delle email ti consiglio di usare la classe che ti avevo linkato sopra (quella su php guru) che ti gestisce gia' in automatico i bcc etc....
    Ora gli do' un'occhiata... ma volevo fare una cosa meno complicata senza appoggiarmi alle classi...
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  9. #9
    Se il tuo host è un minimo serio, puoi tranquillamente ricorrere all'uso di un crontab.

    Fai la tua pagina che estrae un tot di mail alla volta, diciamo 50, ti fai il tuo cilco dove volendo puoi anche mettere l'intestazione personalizzata es. 'Gentile Mario Rossi, .....', molto più mirata e meno anonima, senza dimenticare che ogni newsletter dovrebbe contenere la possibilità di cancellarsi dalla medesima, facendo un invio in bcc rimane difficile creare all'interno della mail il link di cancellazione dell'utente in questione.

    Fatta la tua paginetta, setti un crontab al minuto 1 di ogni ora, ogni giorno, ogni mese e dormi sogni tranquilli.

    Lasciando 50 invii ne mandi 1200 al giorno, se non vuoi rischiare nell'aumentare il numero di invii simultanei, fai un secondo crontab al minuto 30 di ogni ora di ogni giorno di ogni mese e le mail diventano 2400 al giorno, ecc, ecc

    SK

  10. #10
    Originariamente inviato da serialkiller
    Se il tuo host è un minimo serio, puoi tranquillamente ricorrere all'uso di un crontab.

    Fai la tua pagina che estrae un tot di mail alla volta, diciamo 50, ti fai il tuo cilco dove volendo puoi anche mettere l'intestazione personalizzata es. 'Gentile Mario Rossi, .....', molto più mirata e meno anonima, senza dimenticare che ogni newsletter dovrebbe contenere la possibilità di cancellarsi dalla medesima, facendo un invio in bcc rimane difficile creare all'interno della mail il link di cancellazione dell'utente in questione.

    Fatta la tua paginetta, setti un crontab al minuto 1 di ogni ora, ogni giorno, ogni mese e dormi sogni tranquilli.

    Lasciando 50 invii ne mandi 1200 al giorno, se non vuoi rischiare nell'aumentare il numero di invii simultanei, fai un secondo crontab al minuto 30 di ogni ora di ogni giorno di ogni mese e le mail diventano 2400 al giorno, ecc, ecc

    SK
    Questa soluzione sarebbe la più professionale... Mi piace un casino...
    In termini pratici e di codice potresti darmi uno spunto? Soprattuto per il "estrai tot email per volta" e "usare il crontab" (quest'ultimo so come funziona e lo configuro per gestire un paio di backup e l'awstats... ma non l'ho mai "legato" all'uso del php)
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.