- Home
- Categorie
- Coding e Sistemistica
- PHP
- PHP invio mail - E' perfetto ma non invia
-
PHP invio mail - E' perfetto ma non invia
Ciao
Mi rivolgo al forum solo quando la logica del php va a farsi benedire...:o
[PHP]// EMAIL
$msgformat = "
Gentile $nome $cognome,$text
Saluti
Automation Configuration";
$receiverMail = "$email";
$oggetto = ("$oggetto");
mail("$receiverMail", "$oggetto", "$msgformat", "From: Miamail [email protected]");[/PHP]
Ho eliminato i miei dettagli (email, nome, sito) per il resto il php è cosi. Tutti i dati li ottegno dalle variabili $id_cliente e $id_mail che mi porto nell'url. Con queste seleziono la stringa del cliente e la stringa mail in due tabelle del database che contengono le informazioni. Per sicurezza in questa pagina faccio **echo **di tutti i dati che ci sono tutti e giusti.La mia domanda è: perchè non invia l'email?
Grazie
-
prova cosi:
mail("$mail", "$oggetto", "$msgformat", "From: Miamail [email protected]");al posto di
$receiverMail = "$email";
$oggetto = ("$oggetto");
mail("$receiverMail", "$oggetto", "$msgformat", "From: Miamail [email protected]");
-
Grazie della risposta.
Anche se è più logico come hai suggerito non invia lo stesso
-
prova a fare un echo di $email e vedi se c'è l'indirizzo email, oppure è vuota
-
Ciao Kian,
sei sicuro che la variabile SMTP sia definita correttamente?
Se non lo e' in php.ini, la puoi definire al volo con[php]ini_set("SMTP","mail.domain.com");[/php]
sostituendo l'indirizzo del server con quello da te utilizzato.
-
Grazie delle risposte
@Thedarkita: si, già fatto ed è giusta
@olaola: cavolo non ci avevo pensato. Sono su aruba e pensavo che gli hosting professionali sistemassero queste cose. Comunque ho provato con
[PHP]ini_set("SMTP","smtp.miosito.it"); [/PHP]
che sarebbero i dati per il server posta in uscita (li utilizzo su outlook). Ho inserito questa funzione all'interno della pagina di invio mail. Nonostante questo l'email non parte :bho:
-
Prova mettendo l'indirizzo IP della macchina su cui sta il sito. Io stavo su un shared hosted Aruba e facendo cosi' mi funzionava.
-
Ho provato ma niente :bho:
[php]ini_set("SMTP","62.xxx.xxx.xxx"); [/php]Prima le email le inviava tranquillamente. Sto cominciando a pensare che forse ho fatto qualche errore nel mail() perchè non può essere che prima funzionava e adesso no.
-
Chiedo scusa per il post ma non trovo il tasto "EDITA" forse è valido solo dopo pochi minuti.
Aggiungo un questito. Utilizzo questo script per il controllo validita email
[PHP]if(!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,3})$", $email))[/PHP]
Tuttavia molti clienti hanno problemi nel farsi accettare le proprie email. Per esempio ci sono email con caratteri maiuscoli che lo script non accetta. Magari ci solo anche altri "bug". Ho cercato in rete e questo sembra essere lo script più "gettonato" però non va bene. Sapete dirmi cosa devo correggere?Grazie
-
Ciao allora io ho un problema identico on funziona la funzione mail() di php. o meglio zio Bill non la vuole!
Kian la mail su che account la invii? su hotmail o live? se si prova a farne uno gmail e ritenta l'invio della mail!
se in questo modo la mail ti arriva hai il mio stesso problema.
Cercando nel web ho trovato che la miscrosft ha il sender-ID cioè vuole che la mail sia verificata altrimenti è spam e la blocca ancora prima d fartela vedere!! (assurdo)
Se qualcuno sa qualcosa in merito non esiti a scrivere sto andando in paranoiaaa:o
-
Dovete inserire un mittente valido, altrimenti vengono automaticametne cestinate da hotmail...
-
si appunto ma come si fa???
-
Allora supponendo che mandi l'email da sito.it metti un email @sito.it e stai sicuro che funziona...
-
niente da fare avevo gia provato e ho appena riprovato...su account gmail la ricevo all'istante su account hotmail no.
Posto il codice per vedere se c'è qualcosa di sbagliato:[PHP]
ini_set("SMTP","smtp.netsons.org"); //imposta smtp di netsons$nome=$_POST['nome'];
$emailmittente=$_POST['email'];
$oggetto=$_POST['cmbOggetto'];
$messaggio=$_POST['messaggio'];$destinatario="[email protected]";
$headers = "From: Images Upload<noreply>\r\n"; //Il tuo nome
$headers .= "X-Sender: <noreply>\r\n"; //Il mittente
$headers .= "X-Mailer: PHP\r\n"; //mailer
$headers .= "X-Priority: 3\r\n"; //1 UrgentMessage, 3 Normal
$headers .= "Return-Path: [email protected]\r\n"; // Return-path
$headers .= "Content-Type: text/html;\r\n";
$headers .= "X-AntiAbuse: Servername - {".$_SERVER['SERVER_NAME']."}\r\n";
$headers .= "Email utente: ".$emailmittente."\r\n"; //info aggiuntive$ris=mail($destinatario, $oggetto, $messaggio, $headers);
[/PHP]nemmeno come spam arriva! viene proprio bloccata su hotmail
-
Images Upload<noreply>
ti sembra un mittente valido?
-
ho provato con:
[PHP]
$headers = "From: Images Upload[email protected]\r\n"; //Il tuo nome
$headers .= "X-Sender: [email protected]\r\n"; //Il mittente
[/PHP]non va lo stesso...:(
-
sui server aruba funzionani...dai netsons no... evidentemente netsons non ha qulacosa che verifichi i propri domini mentre aruba si e hotmail lo blocca
-
Allora io in una pagina php invio 2 email insieme.
-Admin mail: destinata a me [email protected] ed è di aruba
-Welcome email: destinata al cliente $emailPrima questo php non prevedeva l'invio di una mail al cliente e funzionava. Da quando ho aggiunto l'invio della mail al cliente non funziona più. Il fatto strano è che ha funzionato per 2 giorni - inviava le 2 email - e poi blackout morto!
Ho un'altra pagina dove invio tramite un mailer-system email ai clienti. Le variabili sono corrette e lo script funziona ma l'email non arriva nemmeno se invio alla mail aruba del sito.
Sono confuso
-
SI guarda è un casino assurdo non ci sto capendo più niente... su un server aruba ho risolto inserendo la funzione iniset() di php stesso identico codice su un server di netsons non funziona (NOTARE : non funziona solo verso hotmail)
-
Sono felicissimo di comunicare che ho risolto il problema
Mi sono riscritto tutta la pagina php da zero e adesso funziona. Ho cercato di controllare i due file e sembrano identici solo che uno funziona e l'altro no. Credo che forse si trattasse di qualche if() non chiuso bene {}. Adesso la pagina mi invia tranquillamente l'email all'Admin, l'email di benvenuto al cliente, mi salva tutti i dati nel database, effettua il pagamento con paypal prendendo nome articolo, descrizione, costo (...) dal db.
Soddisfattissimo!
PERO sono deluso dal fatto che la "Welcome email" al cliente arriva solo se questo ha gmail. Alle caselle libero non arriva alcun messaggio nemmeno nella posta indesiderata / spam. Ne sapete qualcosa?