Invio mail che funzioni bene

Ellest

Utente Attivo
4 Feb 2013
33
0
0
Ciao a tutti.
Devo fare un sistema di registrazione al sito, con email di conferma.
per mandare la mail, uso:
PHP:
mail($to, $subject, $message, $headers) or die ("ERRORE DURANTE L'INVIO DELL'EMAIL!");
ma le mail non arrivavano mai a chi usava Libero Mail.
inoltre, ora che uso WampServer, da errore:
Codice:
 Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\mc\page2.php on line 213
c'è un modo per mandare una mail che funzioni bene, che arrivi subito, e sempre?
 

Ellest

Utente Attivo
4 Feb 2013
33
0
0
grazie, ma mi dà questo errore:
Codice:
Could not instantiate mail function.
 

Ellest

Utente Attivo
4 Feb 2013
33
0
0
il codice che ho usato è
PHP:
<head>
</head>

<body>
<?php

$text=$_POST['text'];
$to=$_POST['email'];

include_once('class.phpmailer.php');
 
$mail = new PHPMailer();
 
$mail->From = '[email protected]';
$mail->FromName = 'Ellest';
$mail->Subject = 'Test';
$mail->Body = $text;
 
$mail->AddAddress($to);
 
if($mail->Send())
{
    echo 'mail inviato correttamente';
}
else
{
    echo 'mail non inviato a causa del seguente errore: ' . $mail->ErrorInfo;
}

?>
</body>
</html>
 

Ellest

Utente Attivo
4 Feb 2013
33
0
0
allora, ho preso il codice che danno quelli che hanno fatto phpmailer.....
PHP:
<html>
<head>
<title>Documento senza titolo</title>
</head>

<body>
<?php
require '\PHPMailer-master\class.phpmailer.php';

$mail = new PHPMailer;

$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com';						  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = '[email protected]';                            // SMTP username
$mail->Password = 'password';                           // SMTP password
$mail->SMTPSecure = 'ssl';                            // Enable encryption, 'ssl' also accepted

$mail->From = '[email protected]';
$mail->FromName = 'Mailer';
$mail->AddAddress('[email protected]');  // Add a recipient
$mail->AddReplyTo('[email protected]', 'reply');

$mail->IsHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->Send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}

echo 'Message has been sent';
?>
</body>
</html>

e mi da errore
Codice:
Message could not be sent.Mailer Error: The following From address failed: [email protected] : Called Mail() without being connected
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
verifica bene qui, devi mettere pa password relativa al provider con dui ti connetti (alice, fastweb, ..... o altro)
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'password';
edit
questo se ti colleghi da localem da remoto non mettere l'smtp
 
Ultima modifica:

Ellest

Utente Attivo
4 Feb 2013
33
0
0
ok, ora l'ho riscritto meglio, viene così:
L'ho messo sul pastebin per comodità.
LINK
aggiornata la pagina, viene l'errore:
Codice:
SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (64668224) 
The following From address failed: [email protected] : Called Mail() without being connected errore mail: The following From address failed: [email protected] : Called Mail() without being connected

perchè?
 

Ellest

Utente Attivo
4 Feb 2013
33
0
0
ok, errore stupido, bastava mettere prima l'attivazione dell'smtp, poi il resto...
ora da solo
Codice:
Could not instantiate mail function
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
verifica i percorsi nella parte, cioè dove si trova la classe
PHP:
require '\PHPMailer-master\class.phpmailer.php';
esempio la versione che ho io la cartella si chiama phpmailler, se sei su linux attento anche alle maiuscole/minuscole.
PHP:
require "phpmailler/class.phpmailer.php";

verifica inoltre che dentro la cartella ci sia anche class.smtp.php che è una classe che phpmailer richiama automaticamente quando si usa l'smtp.
poi usa / non \ poi il primo slahs non dovrebbe esserci o se devi risalire di cartella dovrebbe essere ..\

eventualmente posta tutto quello che hai fatto che ci do un occhio
 

Ellest

Utente Attivo
4 Feb 2013
33
0
0
è tutto giusto, ho guardato centinaia di post dappertutto cercando soluzioni, ma non ho trovato nulla di utile...
http://pastebin.com/dsd0reqm

una cosa strana che noto ora è che se, in un nuovo file, metto:
PHP:
<html><head></head><body>
<?php
mail("[email protected]", "Test Subject", "Test Message"); 
?>
</body>
</html>

mi da errore:
Codice:
Warning: mail(): Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp\www\mc\test.php on line 3

ma se io vado in php.ini, i settaggi son corretti!
Codice:
SMTP = smtp.gmail.com
smtp_port = 465
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao.
Ecco qua l'ho provato e funziona.
Ti basterà creare il db come indicato nello script e il gioco è fatto.
Ovviamente ti consiglio una connessione al db esterna. (config.php)
PHP:
<?PHP 
    $dbhost = 'localhost'; 
    $dbuser = 'user'; 
    $dbpass = 'pass'; 
    $dbname = 'nome'; 
    
    $connessione = mysql_connect("localhost","user","pass") 
    or die("Impossibile connettersi al server host");
    mysql_select_db(name, $connessione) 
    or die ("Impossibile selezionare il database.");
    
    $User_utente=$_POST['user_utente'];
    $Password_utente=MD5($_POST['password_utente']);
    $Nome=$_POST['nome'];
    $Cognome=$_POST['cognome'];
    $Indirizzo=$_POST['indirizzo'];
    $Citta=$_POST['luogo'];
    $Provincia=$_POST['provincia'];
    $Cap=$_POST['cap'];
    $Telefono=$_POST['telefono'];
    $Fax=$_POST['fax'];
    $Cell=$_POST['cell'];
    $Mail=$_POST['mail'];
    $Cfpi=$_POST['cfpi'];
  
   if(mysql_query($query)){
     
    $to = $Mail; 
    $subject = "Registrazione Tuo Sito"; 
    $USER="\n User :";
    $PASSWORD="\n Password :";
    $MAIL="\n E.mail :";
    $server="Tuo Sito";
    $messaggio = $messaggio;
    $messaggio .= "\n La sua registrazione e' stata completata con successo!
    \n La ringraziamo per essersi registrato
    \n Le ricordiamo i dati della sua registrazione:";
    $messaggio .= "\n\n-------------------------------------\n"; 
    $messaggio .= "\n E.mail inviata da: www.tuosito.it
    $USER $User_utente
    $PASSWORD $Password_utente
    $MAIL $Mail "; 
    $headers = "From: ".$server ." <" .$Mail.">\n"; 
    if(@mail($to, $subject, $messaggio, $headers)){ 
       echo "E.mail Inviata";}
     }else{
       echo "errore";
    } 
    mysql_close($connessione);

?>
 
Ultima modifica:

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Scusa mi sono accorto che mancava la query.
Ora funziona.

PHP:
 <?PHP 
    $dbhost = 'localhost'; 
    $dbuser = 'user'; 
    $dbpass = 'pass'; 
    $dbname = 'nome'; 
    
    $connessione = mysql_connect("localhost","user","pass") 
    or die("Impossibile connettersi al server host");
    mysql_select_db(name, $connessione) 
    or die ("Impossibile selezionare il database.");
    
    $User_utente=$_POST['user_utente'];
    $Password_utente=MD5($_POST['password_utente']);
    $Nome=$_POST['nome'];
    $Cognome=$_POST['cognome'];
    $Indirizzo=$_POST['indirizzo'];
    $Citta=$_POST['luogo'];
    $Provincia=$_POST['provincia'];
    $Cap=$_POST['cap'];
    $Telefono=$_POST['telefono'];
    $Fax=$_POST['fax'];
    $Cell=$_POST['cell'];
    $Mail=$_POST['mail'];
    $Cfpi=$_POST['cfpi'];
	  
    $query = "INSERT INTO iscritti (user_utente, 
    password_utente, nome, cognome,indirizzo, 
    luogo, provincia,cap,telefono,fax,cell,mail,cfpi)
    VALUES ('$User_utente','$Password_utente','$Nome', 
    '$Cognome','$Indirizzo ', '$Citta', '$Provincia', 
    '$Cap', '$Telefono', '$Fax' , '$Cell', '$Mail','$Cfpi')";
  
   if(mysql_query($query)){
    $to = $Mail; 
    $subject = "Registrazione Tuo Sito"; 
    $USER="\n User :";
    $PASSWORD="\n Password :";
    $MAIL="\n E.mail :";
    $server="Tuo Sito";
    $messaggio = $messaggio;
    $messaggio .= "\n La sua registrazione e' stata completata!
    \n La ringraziamo per essersi registrato
    \n Le ricordiamo i dati della sua registrazione:";
    $messaggio .= "\n\n-------------------------------------\n"; 
    $messaggio .= "\n E.mail inviata da: www.tuosito.it
    $USER $User_utente
    $PASSWORD $Password_utente
    $MAIL $Mail "; 
    $headers = "From: ".$server ." <" .$Mail.">\n"; 
    if(@mail($to, $subject, $messaggio, $headers)){ 
       echo "E.mail Inviata";}
     }else{
       echo "errore";
    } 
    mysql_close($connessione);

?>
 

Ellest

Utente Attivo
4 Feb 2013
33
0
0
mmmmh...
da quello che capisco è semplicemente un form per inviare le mail con la funzione mail...
prima ho fatto un sito così, ma a quelli con libero mail non arrivava, quindi ho deciso di usare phpMailer, che fa l'autenticazione smtp, ma non funziona, è questo il problema che non riesco a risolvere....
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao, in tal caso usa il validissimo metodo e segui il validissimo tutorial indicato da Borgo_italia:
ciao
abbamdoma la funzione mail() e usa la classe phpmauler (o simile)
https://www.mrw.it/php/artico...ailer_631.html
funzione bene, per il prestp non dipende dagli script
poi per inviare da locale devi istanziare le classe (se cerci fra le discussioni trovi come si fa)
Con questa classe potrai inviare anche mail in formato html e non solo.
 
Discussioni simili
Autore Titolo Forum Risposte Data
asevenx link cliccabile che non funziona con invio mail PHP 1
M telecamera Foscam - mancato invio mail ad account gmail IP Cam e Videosorveglianza 0
R Invio mail con allegati multipli PHP 0
R Invio mail con allegati da directory PHP 1
Daniele_Carrara Problema timeout - invio mail PHP 7
U PHP bottone per invio mail o ritorno al form PHP 15
G Invio mail con php da dati prelevati da un database PHP 9
AC1 [PHP] Invio Mail PHP 18
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
A [PHP] Problema invio mail con funzione mail() PHP 3
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
paloppa [PHP] Invio mail da form dubbio PHP 17
F Form mail php errore invio PHP 5
Punix [PHP] problema script invio e-mail PHP 2
G Invio Mail con PHPMailer, problemi SMTP PHP 7
cobra_72 [PHP] problema invio multiplo allegati mail PHP 21
Z Limite invio newsletter con PHP - mail() PHP 4
E [Javascript] Messaggio di avvenuto invio mail non visualizzato Javascript 1
F Invio Mail con Javascript Javascript 25
E Rimuovere "dati in memoria" dopo invio mail [PHP] PHP 18
lucarpenter Settaggio invio mail allarme IP camera P2P IP Cam e Videosorveglianza 9
I form invio mail HTML e CSS 1
F Invio automatico mail php PHP 0
Francesco Polese Errore form invio mail+php PHP 22
R Errore invio mail in php PHP 1
M Errore invio mail da php Posta Elettronica 5
P invio mail da form con dati php PHP 7
webmachine Come programmare l'invio di una mail in PHP? PHP 1
W Estrapolare un indirizzo mail di un form durante l'invio PHP 5
Z Invio mail da telecamere HIKVision - HELP!!! IP Cam e Videosorveglianza 0
M WANSCAM Invio allarme tramite mail IP Cam e Videosorveglianza 4
M configurazione invio mail php PHP 25
I invio mail da form PHP 1
S Form invio mail html, con invio tramite file denominato invio.php PHP 8
P Invio mail diversi destinatari PHP 10
W problemi incomprensibili invio mail dal sito in PHP PHP 3
M Invio mail con destinatari da mysql con inserimento di nome e cognome PHP 6
Il Matta Problema Form e invio mail PHP 2
G WansCam invio mail IP Cam e Videosorveglianza 11
B Problema form mail per invio doppio allegato PHP 1
F invio di una mail tramite script php PHP 6
D [Risolto] Invio mail a blocchi Classic ASP 31
A Problema orario invio mail per form PHP 4
S [risolto] Invio scheda dettagliata in mail Classic ASP 6
antonio_oti Invio di e-mail tramite PHP PHP 23
O [PHP] Problema Invio Mail PHP 2
I [Risolto] Problemi invio e-mail con CDOSYS con domini @live.it Classic ASP 4
S php form invio mail PHP 3
M problemi invio e-mail Posta Elettronica 8
L Form con invio mail PHP 1

Discussioni simili