Funzione (mail) PHP5

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
puzuma
Linux 2.x
Linux 2.x
Messaggi: 482
Iscritto il: mar 4 lug 2006, 17:14
Nome Cognome: Stefano Salvador
Slackware: current
Kernel: 2.6.32.2
Desktop: KDE 4.4.0
Località: Udine
Contatta:

Re: Funzione (mail) PHP5

Messaggio da puzuma »

sembra nell'ottica "non riscopriamo l'acqua calda" ti suggerisco di dare un'occhiata al framework della zend:

http://framework.zend.org

è un ottimo frmework che implementa il pattern MVC, non siamo ancora ai livelli di ruby on rails ma ci stiamo avvicinando.

ha anche un modulo mail che gestisce attachment e codifica caratteri in modo trasparente.

Ciao, Stefano

P.S Zend sono quelli che hanno sviluppano php ...
The quiet ones are the ones who change the world. The loud ones only take the credit.

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Re: Funzione (mail) PHP5

Messaggio da nuitari »

Ruby on rails è cacca.
Sviluppo tutti i giorni insieme ad un tizio che usa ruby E rails, e rails fa vearmente schifo. A parte i bug, a parte le limitazioni, a parte il team di sviluppo ridicolo... è veramente una cosa per principianti.

Usa il mio di framework :p \:D/

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Funzione (mail) PHP5

Messaggio da conraid »

nuitari ha scritto:Vedi perchè è utile usare una classe all-purpose? Se hai delle librerie (che siano classi o meno) programmate come si deve, non ha scopo riscrivere ed inventare ogni volta l'acqua calda.. è già tutto li dentro. E non è che usi chissà quali risorse immani.....
Lo so, ma in quel caso si tratta di una riga.
E molti usano classi e poi magari non settano correttamente i content-type nelle instestazioni HTTP, modificando solamente il codice HTML.
Comunque si, le classi aiutano, ma non le so usare :p

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Re: Funzione (mail) PHP5

Messaggio da nuitari »

Ecco un esempio di uso di phpmailer... mi pare banale =) e comunque la uso perchè implementa correttamente le RFC .

Codice: Seleziona tutto

$mail = new PHPMailer();
$mail->SetLanguage("it", $disk_path . "/sources/phpmailer/language/");
$mail->From     = $oComponent[0]->form_fields["email"]->getValue();
$mail->FromName = $oComponent[0]->form_fields["nome"]->getValue();
$mail->Mailer   = "smtp";
$mail->SMTPAuth	= TRUE;
$mail->Username	= MODULE_FORMTOMAIL_USERNAME;
$mail->Password	= MODULE_FORMTOMAIL_PASSWORD;
$mail->Subject	= MODULE_FORMTOMAIL_SUBJECT;
$mail->Host		= MODULE_FORMTOMAIL_SMTP;

$txt_mail = $tpl->rpparse("main", false);
$mail->Body 	= $txt_mail;

$mail->ResetAddress();
$mail->AddAddress(MODULE_FORMTOMAIL_TO_MAIL, MODULE_FORMTOMAIL_TO_NAME);

if($mail->Send())
{
	FormsRedirect($oPage->title, $site_path . "/formtomail_success", $oPage->theme);
}
else
{
	FormsRedirect($oPage->title, $site_path . "/formtomail_unsuccess", $oPage->theme);
}

Avatar utente
puzuma
Linux 2.x
Linux 2.x
Messaggi: 482
Iscritto il: mar 4 lug 2006, 17:14
Nome Cognome: Stefano Salvador
Slackware: current
Kernel: 2.6.32.2
Desktop: KDE 4.4.0
Località: Udine
Contatta:

Re: Funzione (mail) PHP5

Messaggio da puzuma »

nuitari ha scritto:Ruby on rails è cacca.
preferisco non commentare queste affermazione non motivate da persone che evidentemente non hanno mai sviluppato seriamente per il web.
nuitari ha scritto:Sviluppo tutti i giorni insieme ad un tizio che usa ruby E rails, e rails fa vearmente schifo. A parte i bug, a parte le limitazioni, a parte il team di sviluppo ridicolo... è veramente una cosa per principianti.
sei matto, non hai capito niente della filosofia di rails: "convention over configuration": hai subito tutto pronto e funzionante, poi hai tutta la potenza di ruby (che è tanta) a disposizione, php è anni luce indietro e alla zend lo sanno.

ti assicuro che _io_ non sono un principiante.
The quiet ones are the ones who change the world. The loud ones only take the credit.

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: Funzione (mail) PHP5

Messaggio da samiel »

Se quello mandato da ninobi ti funziona non ti mando il mio, fammi sapere
alla fine fanno tutti la stessa cosa più o meno, ed io non ho soluzioni per netsons
Ne hai uno senza MySQL?
Grazie
M.

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Funzione (mail) PHP5

Messaggio da conraid »

samiel ha scritto:
Se quello mandato da ninobi ti funziona non ti mando il mio, fammi sapere
alla fine fanno tutti la stessa cosa più o meno, ed io non ho soluzioni per netsons
Ne hai uno senza MySQL?
Mysql??
quello che ti ho mandato in PM non usa MySQL

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Re: Funzione (mail) PHP5

Messaggio da nuitari »

puzuma ha scritto: bla bla bla
Eheh ma dimmi, per caso rails è la tua mamma ed io ho insultato la tua mamma? O forse è la tua squadra di calcio ed ho insultato la tua fede?
E' un software, uno fra tanti, non il più nuovo e sicuramente non l'ultimo.

TOH! leggiti qualcosa d'istruttivo: http://www.zedshaw.com/rants/rails_is_a_ghetto.html

Adesso dimmi: secondo te, un framework che non permette cose banali come... che so, 'upload concorrente dei file cos'è? cacca dico io.

EDIT:
Adesso capisco, ti sei tirato in causa perchè ho detto che è una cosa per principianti ^^ Che ti devo dire... lo penso. Non penso che tu sia un principiante, non ti conosco, non posso sostenerlo. Ma penso che rails sia una dei software più sopravvalutati di questo decennio.
Sviluppo da anni, ho sviluppato un framework io stesso (in PHP) per la programmazione web e dopo essermi confrontato per mesi con una persona innamorata di Rails, avergli dato credito e fiducia ed averlo visto gradualmente disinnamorarsi di fronte a bug, imperfezioni e mancanze, fino a ripiegare solo su active records, fino ad abbandonarlo completamente active records incluso, posso sostenere a ragion veduta che è un giocattolo, niente di più.

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: Funzione (mail) PHP5

Messaggio da samiel »

Mysql??
quello che ti ho mandato in PM non usa MySQL
Non mi è arrivata la notifica, dunque non lo sapevo...
Mi riferivo a quello di Ninobi.
Grazie, adesso vedo, o forse melgio domani
che ormai è l'una e mezza passata...

Ciao e grazie
M.

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: Funzione (mail) PHP5

Messaggio da aschenaz »

Questo è senza mysql (non l'ho testato in seguito alle modifiche, ma ad occhio e croce dovrebbe andare).
Seguendo il consiglio di conraid, ho messo il charset in header...

Codice: Seleziona tutto

    // modifica queste variabili
    $to="destinatario-email";
    $mitt="mittente"; // inserisci un'email fissa: es. admin@dominio
    $site="nomesito";
    $paginaform="indirizzopaginadelform";

    $nm=trim($_POST["nome"]);
    $cg=trim($_POST["cognome"]);
    $em=trim($_POST["email"]);
    isset($_POST["telefono"]) ? $tl=trim($_POST["telefono"]) : $tl=0;
    $tx=wordwrap(trim($_POST["testo"]),70);
    if($nm=="" | $em=="" | $cg=="" | $tx=="") {
       $paginaform.="&messaggio=campo-richiesto";
       // devi impostare la visualizzazione del messaggio nel form
       // naturalmente io ho messo & perché suppongo ci sia già un ? nella querystring
       // altrimenti sostituisci (qui e sotto) & con ?
       header("Location: $paginaform");
       exit();
    } elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})",$em)) {
       $paginaform.="&messaggio=email-non-valida";
       header("Location: $paginaform");
       exit();
    } else {
       $sub="Contatti sito $site";
       $headers = "MIME-Version: 1.0\r\n"; 
       $headers .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
       $headers .= 'From: $mitt\r\n";
       $headers .= 'Reply-To: $em\r\n";
    $message=<<<EOM

    Hai ricevuto un contatto dal sito $site
    -------------------------------------------------------------------
    Da:\t$mnm $cg
    E-mail:\t$em
    Telefono:\t$tl
    -------------------------------------------------------------------
    Contenuto del messaggio:
    -------------------------------------------------------------------
    $tx
    EOM;

    if(mail($to,$sub,$message,$headers)) {
       $paginaform.="&messaggio=messaggio-inviato";
       header("Location: $paginaform");
       exit();
    } else {
       $paginaform.="&messaggio=invio-fallito";
       header("Location: $paginaform");
       exit();
    }
Ultima modifica di aschenaz il ven 11 gen 2008, 9:29, modificato 1 volta in totale.

Avatar utente
puzuma
Linux 2.x
Linux 2.x
Messaggi: 482
Iscritto il: mar 4 lug 2006, 17:14
Nome Cognome: Stefano Salvador
Slackware: current
Kernel: 2.6.32.2
Desktop: KDE 4.4.0
Località: Udine
Contatta:

Re: Funzione (mail) PHP5

Messaggio da puzuma »

@nuitari
no, mi sono inca***o perchè _io_ tentavo di essere utile consigliando una classe in php scritta e testata da chi sviluppa il motore di php, non la solita classetta sviluppata dall'ennesimo programmatore con problemi di ego.

rails l'avevo solo accennato e tu ti sei scagliato contro (peraltro senza portare esempi tecnici a parte "cacca") andando completamente offtopic (atteggiamento tipico da troll). per inciso il link che mi hai spedito non l'ho letto, non ritengo che un post che contiene 20 volte la parola "fuck" sia poi così tecnico ed equilibrato.

tornando in topic, se cercate classi di questo tipo ne esistono in rete centinaia di ottime basta usare google, io consiglio quelle della zend o pear, le usate in decine di progetti in diversi hosting (anche netsons) ed hanno sempre funzionato. poi se volete risolvere un problema per la centunesima volta fate voi.
The quiet ones are the ones who change the world. The loud ones only take the credit.

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Funzione (mail) PHP5

Messaggio da conraid »

puzuma ha scritto: tornando in topic, se cercate classi di questo tipo ne esistono in rete centinaia di ottime basta usare google, io consiglio quelle della zend o pear, le usate in decine di progetti in diversi hosting (anche netsons) ed hanno sempre funzionato. poi se volete risolvere un problema per la centunesima volta fate voi.
Ma per un form, ripeto un form, usare zend framework mi sembra esagerato. Ed a volte rifare per la centunesima può servire per imparare. Così come nel caso in questione mi sembrava esagerato usare phpmailer.
Se poi devi fare qualcosa di più complesso allora posso darti anche ragione, in questo periodo volevo proprio provare lo zend framework.
Ma tornando in topic veramente il problema è diverso, in questo caso sono le mail che non arrivano se hanno dei particolari mittenti, mi sembra.

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Re: Funzione (mail) PHP5

Messaggio da nuitari »

Va bene, tralascerò Rails poichè off-topic (ma guarda che quel post è FAMOSO nel mondo rails, mi stupisce che tu non lo conosca, se t'interessi di rails dovresti sapere chi è Zed e cosa dice quel blog, vabbeh) e rimarrò in-topic.

Mi unisco a Conraid: consigliare d'usare un framework intero per l'invio di una mail è ridicolo. PHPMailer è una delle classi più famose e più usate nel mondo PHP, è ridicolo il fatto stesso che io stia qui a dirlo. Una cosa è aggiungere ad un progetto una classe, che nasce e muore in uno, massimo due files ed a tutti gli effetti può essere considerata una *libreria di funzioni* per il raggiungimento di uno scopo, una cosa diversa è includere un intero framework, con tutte le implicazioni del caso.

Avatar utente
puzuma
Linux 2.x
Linux 2.x
Messaggi: 482
Iscritto il: mar 4 lug 2006, 17:14
Nome Cognome: Stefano Salvador
Slackware: current
Kernel: 2.6.32.2
Desktop: KDE 4.4.0
Località: Udine
Contatta:

Re: Funzione (mail) PHP5

Messaggio da puzuma »

nuitari ha scritto:consigliare d'usare un framework intero per l'invio di una mail è ridicolo. PHPMailer è una delle classi più famose e più usate nel mondo PHP, è ridicolo il fatto stesso che io stia qui a dirlo.
cipicchia, che permaloso, il mio era un solo un consiglio, bastava ignorarlo, insultare le persone non è mai un buon atteggiamento. comunque basta cliccare sul link per scoprire che quelli della zend sono stati abbastanza intelligenti da consentire di installare anche solo un modulo del loro framework, in particolare per usare Zend_Mail basta copiare due cartelline (usa Zend_Mime) per avere qualcosa che anche legge le mail non solo le spedisce. non ho detto da nessuna parte che PHPMailer fa schifo, anzi mi sembrava con il mio post di appoggiare la tua opinione che non è il caso di reinvetare l'acqua calda.

era solo una segnalazione, poi chi sviluppa sceglie, flammarmi per questo mi sembra ridicolo altro che storie.
The quiet ones are the ones who change the world. The loud ones only take the credit.

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Funzione (mail) PHP5

Messaggio da conraid »

Offtopic: Io non detto che è ridicolo, ma esagerato nel caso specifico, e come hai notato anche l'uso di phpmailer mi sembra altrettanto, però stiamo andando veramente OT, tanto ognuno ha le sue idee ed i suoi modi di operare in determinate circostanze

torniamo in topic.
Se le mail arrivano con un client mail come mai non arrivano con la funziona mail di php?
Sinceramente non so darmi risposta, a meno che essendo tutto interno al server segua altri filtri

@puzuma
Offtopic: Te lo chiedo sinceramente. Se uno è agli inizi con il php come dice di essere samiel, consiglieresti davvero di usare le classi dello zend framework invece di vedere come fare da soli?
Io ho sempre pensato che soprattutto all'inizio uno debba capire le funzioni basi che ha a disposizione e dopo se vuole passare ad altro, che sia zend, cake, ez-components o semplicemente phpmailer

Rispondi