PDA

View Full Version : [PHP] Inviare mail con la funzione mail()


!@ndre@!
03-04-2010, 16:05
Ciao ragazzi, ho un problema con l'invio di una mail attraverso la funzione mail() di PHP. Non riesco ad inviarla e non capisco se è un problema del codice, del server smtp..insomma non ho idea...:muro:

Allora premetto, cosa secondo me parecchio importante, che mi connetto con teleconomy internet (56k) e già qua ho diversi dubbi su quale server smtp impostare perchè, da quello che ho letto, non ne viene fornito uno e quindi bisogna appoggiarsi ad un qualche altro servizio. Nel thread di teleconomy ho trovato alcuni server smtp che dovrebbero funzionare però non ne ho la certezza:

- mail.191.it
- smtp.191.it
- mail.tuttopmi.it


Nel file php.ini ho configurato così:


[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.191.it
; http://php.net/smtp-port
smtp_port = 25

mentre la mia funzione viene così invocata:


function reg_send_confirmation_mail($to, $from, $id){
//invio la mail di conferma
$msg = "Per confermare l'avvenuta registrazione, cliccate il link seguente:
http://127.0.01/confirm.php?id=".$id."
";
return (mail($to, "Conferma la registrazione", $msg, "From: ".$from)) ? REG_SUCCESS : REG_FAILED;
}


..non vorrei che ci fosse qualche problema anche qui, in particolare con gli header dei quali non so praticamente nulla.. :mc:

...se c'è una qualche buon'anima che mi può aiutare ne sarei molto felice!! :D

RagingBull
03-04-2010, 19:30
il file php.ini sta bene: ho provato a fare una "telnettata" sul server smtp e risponde correttamente.

Per quel che riguarda il metodo da te creato:

1. gli header ti conviene costruirli (altrimenti le mail rischiano di essere prese come spam) ti rimando agli esempi che si trovano nella documentazione di PHP del sito ufficiale.

2. prova a modificare il metodo in questo modo:


if(mail($to, "Conferma la registrazione", $msg, "From: ".$from)) {
$esito = "REG_SUCCESS";
}
else {
$esito = "REG_FAILED";
}

return ($esito);


EDIT: Riguardando quanto da te scritto (e anche da me): forse c'è da mettere qualche doppioapice attorno a REG_SUCCESS e REG_FAILED? Credo si tratti comunque di stringhe.

!@ndre@!
03-04-2010, 19:43
..ci sono riuscito però ho usato PHPMailer: una volta creato un oggetto Mail è di una facilità imbarazzante farci tutto ciò che si vuole!! :eek: