improvvisamente mail() non funziona più

briglia23

Nuovo Utente
24 Giu 2008
28
0
0
Ciao a tutti
io ho questo codice per mandare mail in php

Codice:
<?php
global $conn;

$conn = pg_connect("host=localhost dbname=infolab user=infolab");
if(!$conn) {
    die('Connessione ad infolab fallita !<br />');
} else {
    //echo 'Connessione riuscita !<br />';
}

$url = 'http://localhost/drupal/user/register';
$indirizzo = $_GET['emaildestinatario'];
$token = md5($indirizzo);
$ragione_sociale = $_GET['ragionesociale'];
$stato_pagamento = $_GET['pagamento'];
$oggetto = "Token per la registrazione al sito 'Migrazione.com'";
$info = "\n Il suo codice per la registrazione è:$token \n\n per completare la registrazione collegarsi al link seguente \n\n $url" ;
$intestazioni="From: token@migrazione.com\n";
mail($indirizzo,$oggetto,$info,$intestazioni);
$token_uguali=0;

if(!$query_token_presente = @pg_query($conn, "SELECT token from clienti")){
	die("Errore nel ricercare il token".pg_last_error($conn));
} else {
       $token_array = pg_fetch_all($query_token_presente);
       //var_dump($token_array);
       for($i=0;$i<count($token_array);$i++)
          {
           $tokendb=$token_array[$i]['token'];
		if($tokendb==$token){
			//echo 'il token è presente';
			$time=time();
			//echo 'TIME = '.$time;
			$newtoken=$indirizzo.$time;
			//echo 'TOKEN + TIMESTAMP ='.$newtoken;
			$token2=md5($newtoken);
			//echo 'TOKEN MODIFICATO ='.$token2;
			$info = "\n Il suo codice per la registrazione è:$token2 \n\n per completare la registrazione collegarsi al link 				seguente \n\n $url" ;	
			$token_uguali++;
			inserisci($indirizzo,$token2,$ragione_sociale,$stato_pagamento);
			mail($indirizzo,$oggetto,$info,$intestazioni);
		}	else	{
										
				}
           } 
       }

//echo 'TOKEN_UGUALI ='.$token_uguali;

if($token_uguali!=0){
}else{
inserisci($indirizzo,$token,$ragione_sociale,$stato_pagamento);
mail($indirizzo,$oggetto,$info,$intestazioni);
}

function inserisci($indirizzo,$token,$ragione_sociale,$stato_pagamento){

if($insert_query = @pg_query($GLOBALS['conn'], "INSERT INTO clienti (email, token, ragione_sociale, stato_pagamento)
						VALUES('$indirizzo', '$token', '$ragione_sociale', '$stato_pagamento')")) {
    echo 'Contatto inserito !<br />';
} else {
    die("Errore nella query: " . pg_last_error($GLOBALS['conn']));
}
}


?>

Come mail non mi arriva nessuna mail?
Ho anche stampato il valore di ritorno della funzione mail ed è 1 (non dovrebbe essere true?)

Grazie a tutti
 
ma ha sempre funzionato!?

Mi spiego meglio:

Per sviluppare tutto quanto ho usato xampp che mi ingloba tutto l'occorrente per creare un sito con php.

Finchè ho lavorato sul mio pc è andato tutto bene, poi ho spostato la copia esatta della mia struttura su una macchina virtuale e caricato su un server. Può essere dato da questo spostamento?

Come posso fare per fugare ogni dubbio?

Grazie
 
ciao
in locale (e mi sembtra che tu stia lavorando in locale) mail non spedisce
Borgo. ma vuoi veramente che ti banni per tutta la vita da tutti i forum del Regno? Puoi inviare mail anche da locale modificando il php.ini in questo modo per Windows:
PHP:
[mail function]
; Setup for Windows systems
SMTP = smtp.tuoprovider.com
sendmail_from = miamail@miamail.com

e in questo per Linux:
PHP:
[mail function]
; Setup for Linux systems
sendmail_path = /directory/sendmail -t
sendmail_from = miamail@miamail.com
 
anche se la giornata delle ceneri è passata mi cospargo la pelata con la cenere

ma vuoi veramente che ti banni per tutta la vita da tutti i forum del Regno?

ma cosa puoi pretendere da uno che ha incontrato php per la prima volta in meno di un anno ed autodidatta?

ciao e buona pasqua
 
Grazie adesso provo e poi vi faccio sapere ho ancora un paio di domande:

Codice:
sendmail_path = /directory/sendmail -t
sendmail_from = miamail@miamail.com

in path ed in from che valori devo mettere rispettivamente per directory e miamail?

Scusate la mia ottusagine, ma ancora non capisco come mai prima funzionava ed adesso (da quando ho spostato su macchina virtuale) no.

Grazie
 
Ho risolto, grazie vi erano dei firewall bloccanti.

Adesso avrei un'altra domanda. Quando invio la mail al suo interno vi è un link del tipo:

mail@mail.com se uno vi clicca sopra si apre il client di posta pronto per spedire una nuova mail all'indirizzo del link. Come faccio ad inserire anche l'oggetto in automatico?

Grazie
 
Codice:
sendmail_path = /directory/sendmail -t
sendmail_from = miamail@miamail.com

in path ed in from che valori devo mettere rispettivamente per directory e miamail?
Grazie
In path ci va il percorso al programma sendmail installato nel sistema, from invece la mail da associare al mittente, ad esempio la mail che utilizzi abitualmente.
 
Alla fine ho risolto, il problema è che avevo dei firewall bloccanti.

Grazie.

Mi sai aiutare per l'altra domanda che ho inserito 2 post fa?

Grazie
 
intendi concatenare il testo della mail ricevuta con l'oggetto della nuova mail che voglio spedire?
 

Discussioni simili