La segnatura della funzione mail() è questa
codice:
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
e tu fai così
Originariamente inviato da Rei-chan
$mittente = "NEWSLETTER: $name ti invia questo messaggio";
$sendmail = mail("miaemail@server.it", $mittente, "From: $email");
il che è sbagliato per ciò che vuoi ottenere.
Come vedi mail() accetta minimo 3 parametri:
1) il destinatario
2) l'oggetto dell'email
3) il messaggio
Tu avrai anche chiamato $mittente la tua variabile, ma per la funzione mail() quello è l'oggetto (subject), non conta il nome della variabile, ma la posizione in cui la metti.
Ti arriva come mittente l'indirizzo host@qualcos'altro.com perché tu alla funzione mail() non hai detto da nessuna parte chi sia il mittente, allora questo viene ricavato da altri dati.
Se vuoi far apparire l'indirizzo del mittente devi inserirlo in un'ulteriore variabile opzionale, quella contenenti gli headers.
Esempio:
Codice PHP:
$destinatario = "pippo@isp.it";
$oggetto = "Prova";
$messaggio = "Messaggio di prova";
$headers = 'From: [email]mittente@isp.com[/email]' . "\r\n" .
'Reply-To: [email]mittente@isp.com[/email]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$sendmail = mail($destinatario,$oggetto,$messaggio,$headers);
....