mail()

cyber

Nuovo Utente
11 Mag 2012
29
0
0
Cagliari
ciao a tutti, qualcuno di voi sa come posso inviare le mail da un hosting che ha la funzione mail() disabilitata/configurata male?
grazie a tutti
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
si , ma non ricevo nessuna mail.
lo script funziona perfettamente ma se lo eseguo nel mio hosting non invia la mail anche se si conclude senza errori

cosa significa funziona perfettamente ?
dove e come lo hai provato ?
hai visto arrivare le mail ?
puoi postare lo script con tutti i parametri, esclusi utenti e password delle mail ma lasciando i domini ?

grazie
ciao
Marino
 

cyber

Nuovo Utente
11 Mag 2012
29
0
0
Cagliari
cosa significa funziona perfettamente ?
dove e come lo hai provato ?
hai visto arrivare le mail ?
puoi postare lo script con tutti i parametri, esclusi utenti e password delle mail ma lasciando i domini ?

grazie
ciao
Marino

ciao, l'ho provato sia in locale che su un altro server dove funziona perfettamente, mentre sul server che mi interessa non funziona.
questo e l'index
Codice:
<body>

    <form name="form1" method="post" action="richiesta.php">
     <p><label for="nome"></label>None e Cognome (*):<input name="nome" type="text" id="nome" size="30" required="required"></p>
     <p><label for="email"></label>Indirizzo e-mail (*):<input name="email" type="text" id="email" size="30" required="required"></p>
     <p><label for="note"></label>Messaggio (*): <textarea name="note" cols="70" rows="2" id="note" required="required"></textarea></p>
     <p><input type="submit" name="ok" id="ok" value="Invia">(*) campi obbligatori</p>
    </form>

</body>

e questo è la richiesta
Codice:
<?php 
# [url]http://localhost/test_site/php/test/email_orig.php[/url] 
error_reporting(E_ALL);                // per segnalare un eventuale errore a video senza guardare il log 
ini_set('display_errors', '1'); 
$mail_username = "pippo";    // account ID registrato con il provider in uso 
$mail_password = "pluto";        // password 
$mail_SMTP     = "smtp.topolino.it";        // indirizzo SMTP del provider 
$mail_SMTPport = "25";                // porta del servizio di invio 
$mail_from     = "From: ".$mail_username;    // mittente, può essere diverso da account ID, 
                        // per sicurezza però qualche provider lo vuole uguale 
ini_set("SMTP"     ,$mail_SMTP); 
ini_set("smtp_port",$mail_SMTPport); 
ini_set("username" ,$mail_username); 
ini_set("password" ,$mail_password); 
	   $nome = $_POST['nome']; 
	   $email = $_POST['email']; 
	   $note = $_POST['note']; 
        $mittente = "MIME-Version: 1.0\r\n"; 
        $mittente .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 
        $mittente .= $mail_from." \r\n";     
        $mittente .= "Bcc: [email][email protected][/email] \r\n";  
        $oggetto = "Richiesta pervenuta al sito: www.pluto.net"; 
        $testo = ' 
        <html><head> 
        <style type="text/css">body {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:14px; font-weight:normal; color:#000000;} 
        </style></head><body><br><br><p><img src="logo.jpg" ></p>'; 
        $testo .= " 
        <strong>Richiesta</strong><br><br> 
        nome: ".$nome."<br>  
        e-mail: ".$email. "<br> 
        note: ".$note."<br><br><br>  
        </p></body></html> 
        "; 
        $destinatario = "[email protected]";  
        mail($destinatario, $oggetto, $testo, $mittente);  
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body,td,th {
    font-family: Verdana, Geneva, sans-serif;
    font-size: 16px;
    color: #09C;
    text-align: center;
}
a:link {
    color: #09C;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #09C;
}
a:hover {
    text-decoration: underline;
    color: #09C;
}
a:active {
    text-decoration: none;
    color: #09C;
}
</style>
</head>
<body>
<p>&nbsp;</p>
<p>La sua richiesta e' stata inoltrata</p>
</body>
</html>
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
scusa, puoi postare anche l'errore che ti da a video e/o nel php log (C:/Windows/temp/php....log se usi Windows)
in modo completo
grazie
Marino
 

cyber

Nuovo Utente
11 Mag 2012
29
0
0
Cagliari
non mi da alcun errore
in local host dove funziona perfettamente e ricevo anche l mail
mentre sul server (hosting tiscali con linux) non mi da nessun errore ma non ricevo le mail,
se invece lo provo su un hostin aruba con linux funziona come bene con in local host.
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ho letto la guida di Tiscali, in particolare ti riporto 2 punti

1)
È possibile visualizzare lo stato degli indicatori in funzione dell’offerta hosting sottoscritta. Se il Supporto SQL è abilitato, è possibile verificare quanti Database SQL o Utenti SQL sono stati creati. È possibile verificare il numero dei sottodomini, alias di dominio, account email e ftp attivi nell’hosting.

offerta a pagamento, il servizio mail è attivo ?
lo vedi dal pannello di controllo ...

2)
Si noti che il server SMTP funziona attraverso username e password, si dovrà quindi impostare il client di posta elettronica per l'autenticazione SMTP.

questa affermazione è in linea con i parametri che passiamo,
PHP:
ini_set("SMTP"     ,$mail_SMTP); 
ini_set("smtp_port",$mail_SMTPport); 
ini_set("username" ,$mail_username); 
ini_set("password" ,$mail_password);
prova con porta 25 e con porta 587 più facile che debba essere usata questa seconda

il parametro
PHP:
ini_set('display_errors', '1');
serve proprio per evidenziare gli errori .... ma se non se ne vedono ... ????

ciao
Marino
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
465 sembra la porta più quotata, da istruzioni tiscali
ciao
Marino
 

Allegati

  • Cattura.PNG
    Cattura.PNG
    35,2 KB · Visite: 308

cyber

Nuovo Utente
11 Mag 2012
29
0
0
Cagliari
ok, ho provarto con entrambe le porte ma non cambia nulla.
non mi da alcun errore ma la mail non mi arriva (se uso l'hosting tiscali) mentre se uso l'hosting aruba funziona perfettamente. sto diventando pazzo
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ciao, hai provato ad utilizzare la classe phpmailer?

https://github.com/PHPMailer/PHPMailer/

E' davvero semplice, a suo tempo creai per un altro utente un form, te lo allego prova se funziona.

Vedi l'allegato 2156

ciao,
il problema non sta (parzialmente) nello strumento utilizzato per inviare mail,
quanto nella sua configurazione.

la funzione mail() di php funziona bene fintantoché non ci sia la connessione con protocollo SSL o TLS
usando questa connessione, occorre (mi sembra) ricorrere a PEAR o PHPmailer o altri.

Ma in ogni caso va trovata la giusta configurazione dei parametri di connessione.

nelle istruzioni che ho recuperato da tiscali si parla di porta 465 che viene usata con ssl
quindi nessuno strumento parlerà mai con quel sistema se non configurato bene.

ora avendo un client di posta elettronica (funzionante) che accede a tiscali per scaricare in locale e inviare da locale la posta, sarebbe utile conoscere la sua configurazione. (io non ho account tiscali)

ciao
Marino
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
invio mail con connessione ssl

ciao,

considerato che la funzione mail() non mi sembra possa lavorare con connessioni ssl,
ho scaricato e copiato nel folder ..PHP\v5.4\includes la classe PHPMailer
che trovi,
http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list

ho creato un account nuovo su Gmail che ha smtp con connessione ssl
ho adattato un esempio presente nei folder della classe
e tutto funziona

ti posto lo script, come prima prova metti i parametri di tiscali, senza modificare altro
passa un html (contents.html) giusto per prova

ciao
Marino

PHP:
<?php

# http://localhost/test_site/php/mail/use_gmail.php

include("phpmailer/class.phpmailer.php");
include("phpmailer/class.smtp.php");

$mail             = new PHPMailer();

$body             = file_get_contents('contents.html'); // testo del messaggio in formato html

$mail->SMTPDebug = 1;  // eliminare quando si mette in "produzione"

$mail->IsSMTP();
$mail->SMTPAuth   = true;
$mail->SMTPSecure = "ssl";
$mail->Host       = "smtp.gmail.com";
$mail->Port       = 465;
$mail->Username   = "[email protected]";           // mittente
$mail->Password   = "";                           // password
$mail->FromName   = "Nome Utente";                // nome che precede indirizzo e-mail mittente

$mail->From       = "[email protected]";           // lascerei uguale al mittente

$mail->AddAddress("[email protected]");            // destinatario 1
$mail->AddAddress("[email protected]");           // destinatario 2

$mail->AddCC("[email protected]");

$mail->AddBCC("[email protected]");

$mail->AddReplyTo("[email protected]");            // rispondere a ...

$mail->Subject    = "PROVA DI INVIO SSL";

$mail->AltBody    = "This is the body when user views in plain text format"; //Text Body
$mail->WordWrap   = 50;	// set word wrap

$mail->MsgHTML($body);

// $mail->AddAttachment("/path/to/file.zip");
// $mail->AddAttachment("/path/to/image.jpg", "new.jpg");

$mail->IsHTML(true); // send as HTML

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message has been sent";
}
?>
 

cyber

Nuovo Utente
11 Mag 2012
29
0
0
Cagliari
ok, almeno adesso abbiamo un errore

Codice:
SMTP -> ERROR: Failed to connect to server: Connection refused (111) 
The following From address failed: [email protected] : Called Mail() without being connected Mailer Error: The following From address failed: [email protected] : Called Mail() without being connected

ho anche provate a mettere localhost come server ma non cambia

ps: ovviamente la mail non è [email protected] :)
 

cyber

Nuovo Utente
11 Mag 2012
29
0
0
Cagliari
se invece imposto lo script così
Codice:
$mail->SMTPDebug = 1;  // eliminare quando si mette in "produzione" 

$mail->IsSMTP(); 
$mail->SMTPAuth   = true; 
$mail->SMTPSecure = "ssl"; 
$mail->Host       = "smtp.tiscali.it"; 
$mail->Port       = 465; 
$mail->Username   = "[email protected]";           // mittente 
$mail->Password   = "*********";                           // password 
$mail->FromName   = "Pippo Pluto";                // nome che precede indirizzo e-mail mittente 

$mail->From       = "[email protected]";           // lascerei uguale al mittente 

$mail->AddAddress("[email protected]");            // destinatario 1 

$mail->AddCC("[email protected]"); 

$mail->AddBCC("[email protected]"); 

$mail->AddReplyTo("[email protected]");            // rispondere a ... 

$mail->Subject    = "PROVA DI INVIO SSL"; 

$mail->AltBody    = "This is the body when user views in plain text format"; //Text Body 
$mail->WordWrap   = 50;    // set word wrap 

$mail->MsgHTML($body);

mi da questo errore
Codice:
SMTP -> ERROR: EHLO not accepted from server: 
SMTP -> ERROR: HELO not accepted from server: 
SMTP -> ERROR: AUTH not accepted from server: 
SMTP -> NOTICE: EOF caught while checking if connectedThe following From address failed: [email protected] : Called Mail() without being connected Mailer Error: The following From address failed: [email protected] : Called Mail() without being connected
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
per favore sostituisci con le seguenti

PHP:
$mail->SMTPSecure = "tls"; 


$mail->Subject = "PROVA DI INVIO SSL";
$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';

//$body = file_get_contents('contents.html');		// testo del messaggio in formato html
//$mail->MsgHTML($body);

ciao
Marino
 

cyber

Nuovo Utente
11 Mag 2012
29
0
0
Cagliari
avevo già provavato anche con il tsl ed il risultato e ancora questo
Codice:
SMTP -> ERROR: Failed to connect to server: Connection refused (111) 
The following From address failed: [email protected] : Called Mail() without being connected Mailer Error: The following From address failed: [email protected] : Called Mail() without being connected
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
SMTP -> ERROR: Failed to connect to server: Connection refused (111)

ho chiamato il servizio con telnet ...

Codice:
telnet smtp.tiscali.it 25  -> connessione non riuscita
telnet smtp.tiscali.it 587 -> connessione non riuscita
telnet smtp.tiscali.it 465 -> si connette
quindi sembra usare solo la porta 465 probabilmente legata a SMTPSecure = "ssl";


1 ) controlla, ancora, nel pannello di amministrazione del tuo hosting che il servizio mail sia
veramente attivo


2 ) fai ancora prove di invio, aggiungendo allo script il seguente parametro

PHP:
$mail->$Encoding = 'base64';

con i valori in alternativa ad ogni invio, 'base64', '7bit', '8bit', 'binary', 'quoted-printable'


3 ) se ancora non funziona, verifica con un client di posta (es. outlook)
di poter ricevere e inviare posta con i parametri di tiscali
(se non funziona lo script, non deve funzionare neppure il client)


4 ) hai due tools con le funzioni mail() e phpmailer() che funzionano regolarmente, salvo che con tiscali,
io non ho più idee, chiama l'assistenza di tiscali e fai una verifica con loro dei parametri da utilizzare


5 ) quando hai risolto per cortesia posta la soluzione

ciao
Marino

ps, provando passo, passo, con base64 si connette e taglia la connessione quando mando una userid ... sbagliata
ti posto l'errore ed il codice per curiosità ....

[01-Apr-2014 13:40:17 Europe/Rome] PHP Notice: fputs(): send of 27 bytes failed with errno=10054 Connessione in corso interrotta forzatamente dall'host remoto.
in C:\Web_Sites\__Test\PHP\Mail\SMTPClient.php on line 55

PHP:
    if ($SMTPIN = fsockopen ($this->SmtpServer, $this->PortSMTP)){
//    var_dump($SMTPIN); print "<br /><br />";

      fputs ($SMTPIN, "HELO ".$this->HTTPhost."\r\n");  
      $talk["hello"]=fgets($SMTPIN, 1024); 

//    fputs ($SMTPIN, "STARTTLS\r\n");  
//    $talk["STARTTLS"]=fgets($SMTPIN, 1024); 

      fputs($SMTPIN, "auth login\r\n");
      $talk["res"]=fgets($SMTPIN, 1024);

      fputs($SMTPIN, $this->SmtpUser."\r\n");    <<<----- riga 55
      $talk["user"]=fgets($SMTPIN, 1024);
 
Ultima modifica:

cyber

Nuovo Utente
11 Mag 2012
29
0
0
Cagliari
se aggiungo
Codice:
$mail->$Encoding = 'base64';
mi dice
Codice:
Fatal error: Cannot access empty property in /var/www/virtual/miosito.it/htdocs/prova/index2.php on line 14
la riga 14 è appunto
Codice:
$mail->$Encoding = 'base64';
 
Discussioni simili
Autore Titolo Forum Risposte Data
felino Mac OS e Client Mail: Stato non in linea Mac e Software 1
I recupera password via mail salva pasword password_hash PHP 2
I resetta password via mail PHP 2
M telecamera Foscam - mancato invio mail ad account gmail IP Cam e Videosorveglianza 0
K Importazione e-mail da account gmail ad un altro account gmail Posta Elettronica 0
R Invio mail con allegati multipli PHP 0
A Mail con funzione mail() riconosciute come spam PHP 9
R Invio mail con allegati da directory PHP 1
R Confrontare il dominio di una mail con una stringa contenente un dominio personalizzato, tutto ciò in php o javascript PHP 0
Daniele_Carrara Problema timeout - invio mail PHP 7
G Con Microsoft Outlook 2016 come si possono cancellare le mail doppie? Posta Elettronica 0
G Evitare che mi continui ad arrivare in alice mail spam Posta Elettronica 2
M configurare mail register.it (con 1000 invii/die) su Outlook Posta Elettronica 0
Marti1! Problema con casella mail cancellata Posta Elettronica 3
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
A [HTML] Testo mail non visualizzabile su IOS HTML e CSS 0
L Problema funzione mail() PHP PHP 3
I [PHP] inviare form con allegato tramite una mail PHP 1
A Libero mail non funziona Posta Elettronica 3
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
L PopUp tramite PHP se la mail inserita è già registrata nel database PHP 3
G [PHP] Creare mail con allegato nascosto e bottone di richiamo PHP 0
P [PHP] PEAR Mail e Query PHP 3
Cosina Andare a capo nel testo della mail ricevuta dal form php PHP 1
D [PHP] script che invii una mail automatica dopo risposta ad una discussione di un forum PHP 0
M [PHP] mandare mail usando i cantatti di una lista su mailchimp PHP 7
G [PHP] Creare appuntamento ed inviarlo tramite mail (Outlook e Gmail) PHP 0
L windows live mail Posta Elettronica 4
A [PHP] Problema invio mail con funzione mail() PHP 3
A Php mail non invia due mail di seguito PHP 3
A problema mail Posta Elettronica 5
A [PHP] Inviare mail con piu immagini allegate PHP 6
A [PHP] Modulo mail PHP 3
A [PHP] Formattazione Mail HTML HTML e CSS 5
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
paloppa [PHP] Invio mail da form dubbio PHP 17
B [PHP] Mail di Avvenuta registrazione PHP 4
M [PHP] Componi i file di Excel in e-mail PHP 1
S Creare nuovo account in Mail Mac e Software 0
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
E [PHP] mail inviata anche con campi obbligatori non compilati PHP 9
Z Limite invio newsletter con PHP - mail() PHP 4
F [PHP] Comando mail() e lettere accentate PHP 10
E [Javascript] Messaggio di avvenuto invio mail non visualizzato Javascript 1
F Invio Mail con Javascript Javascript 25

Discussioni simili