Il linguaggio di programmazione PHP
 

phpmailer XAMMP e Windows 10

NoS 3 Ago 2017 11:31
Scusate ma sto impazzendo.

Ho da poco aggiornato il sistema operativo ed ora ho problemi nel
testare l'invio mail da locale.

Ho script che su win 8, con lo stesso ambiente locale, giravano
perfettamente e su win 10 hanno problemi di connessione SMTP -> SMTP
connect() failed.

Ho cercato in rete ma non ho trovato soluzioni.

Il codice che utilizzo per il test è il seguente

//INVIO MAIL A: utente
$mail = new PHPMailer(true);
$mail->SMTPDebug = 1;
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl'; // Use SSL
$mail->Host = 'smtp.gmail.com'; // Server SMTP
$mail->Port = 465; // Porta SMTP
$mail->Username = 'indirizzo@gmail.com'; // SMTP account username
$mail->Password = '*************************x';
$mail->setFrom('indirizzo@gmail.com', 'Mailer');
$mail->AddAddress('mail@destinatario.com','utenteTest');
$mail->isHTML(false);
$mail->Subject = "TEST da LOCALE";
$mail->Body = "Test Invio Mail";
$mail->Send();
echo "Message Sent OK\n";
} catch (phpmailerException $e) {
echo $e->errorMessage();
} catch (Exception $e) {
echo $e->getMessage();
}

L'unica differenza sembra essere il sys op.

Qualche consiglio?
Grazie in anticipo.

---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com
NoS 3 Ago 2017 13:51
Ho trovato la soluzione la posto qui nel caso servisse ad altri.
Ho risolto inserendo:

$mail->SMTPOptions = array(
'ssl' => array(
'verify ******* => false,
'verify ******* name' => false,
'allow_self_signed' => true
)
);

Non ho però capito il motivo (ripeto in win 8 andava in win 10 no, gli
ambienti di sviluppo sono identici).






Il 03/08/2017 11:31, NoS ha scritto:
> Scusate ma sto impazzendo.
>
> Ho da poco aggiornato il sistema operativo ed ora ho problemi nel
> testare l'invio mail da locale.
>
> Ho script che su win 8, con lo stesso ambiente locale, giravano
> perfettamente e su win 10 hanno problemi di connessione SMTP -> SMTP
> connect() failed.
>
> Ho cercato in rete ma non ho trovato soluzioni.
>
> Il codice che utilizzo per il test è il seguente
>
> //INVIO MAIL A: utente
> $mail = new PHPMailer(true);
> $mail->SMTPDebug = 1;
> $mail->IsSMTP();
> $mail->SMTPAuth = true;
> $mail->SMTPSecure = 'ssl'; // Use SSL
> $mail->Host = 'smtp.gmail.com'; // Server SMTP
> $mail->Port = 465; // Porta SMTP
> $mail->Username = 'indirizzo@gmail.com'; // SMTP account username
> $mail->Password = '*************************x';
> $mail->setFrom('indirizzo@gmail.com', 'Mailer');
> $mail->AddAddress('mail@destinatario.com','utenteTest');
> $mail->isHTML(false);
> $mail->Subject = "TEST da LOCALE";
> $mail->Body = "Test Invio Mail";
> $mail->Send();
> echo "Message Sent OK\n";
> } catch (phpmailerException $e) {
> echo $e->errorMessage();
> } catch (Exception $e) {
> echo $e->getMessage();
> }
>
> L'unica differenza sembra essere il sys op.
>
> Qualche consiglio?
> Grazie in anticipo.
>
> ---
> Questa email è stata esaminata alla ricerca di virus da AVG.
> http://www.avg.com
>
Alessandro Pellizzari 4 Ago 2017 07:25
On 03/08/17 12:51, NoS wrote:

> Ho trovato la soluzione la posto qui nel caso servisse ad altri.
> Ho risolto inserendo:
>
> $mail->SMTPOptions = array(
> 'ssl' => array(
> 'verify ******* => false,
> 'verify ******* name' => false,
> 'allow_self_signed' => true
> )
> );

Non ho idea del perche` Windows si lamenti perche` non uso Windows, ma
cosi` hai disattivato la verifica del certificato SSL del server di
posta, quindi ti stai esponendo al rischio che qualcuno finga di essere
GMail e intercetti tutti i messaggi che mandi.

Bye.
Leonardo Serni 4 Ago 2017 11:17
On Thu, 3 Aug 2017 13:51:08 +0200, NoS <NoS@nospam.no> wrote:

>Ho trovato la soluzione la posto qui nel caso servisse ad altri.
>Ho risolto inserendo:

>$mail->SMTPOptions = array(
> 'ssl' => array(
> 'verify ******* => false,
> 'verify ******* name' => false,
> 'allow_self_signed' => true
> )
>);

>Non ho però capito il motivo (ripeto in win 8 andava in win 10 no, gli
>ambienti di sviluppo sono identici).

O sono cambiate in modo disastroso le librerie del PHP, oppure il "google"
a cui ti colleghi - e basta che tu legga le opzioni che hai messo - usa un
peername non valido e un certificato self-signed.

Ovvero, *non* ti stai collegando a Google ma a qualcuno che si spaccia per
Google.

Aaaaaah, aspetta. Oppure hai un *ANTIVIRUS* che vuole esaminare le mail in
transito, e per farlo (dato che sono trasmesse criptate) non ha altro modo
che spacciarsi per Google. Hmm?

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916
NoS 11 Ago 2017 08:14
Grazie per la risposta,
in realtà è un codice che uso in locale in fase di dev giusto per
testare che l'invio mail funzioni (quindi non c'è nulla di rilevante
nelle mail di test)

In produzione questo codice non viene eseguito.

Lo reputi ugualmente pericoloso?

Il 04/08/2017 07:25, Alessandro Pellizzari ha scritto:
> On 03/08/17 12:51, NoS wrote:
>
>> Ho trovato la soluzione la posto qui nel caso servisse ad altri.
>> Ho risolto inserendo:
>>
>> $mail->SMTPOptions = array(
>> 'ssl' => array(
>> 'verify ******* => false,
>> 'verify ******* name' => false,
>> 'allow_self_signed' => true
>> )
>> );
>
> Non ho idea del perche` Windows si lamenti perche` non uso Windows, ma
> cosi` hai disattivato la verifica del certificato SSL del server di
> posta, quindi ti stai esponendo al rischio che qualcuno finga di essere
> GMail e intercetti tutti i messaggi che mandi.
>
> Bye.
>

---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com
NoS 8 Set 2017 11:30
Volevo aggiornare il fatto che questa soluzione, da un giorno all'altro,
non è più valida ed ho nuovamente problemi di invio mail da localhost
con errore:

fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate
verify failed i.

Non ho cambiato versione di php,
non ho cambiato le librerie phpmailer,
non ho cambiato antivirus.
Che può essere successo e come posso risolvere?

---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com
Leonardo Serni 8 Set 2017 17:09
On Fri, 8 Sep 2017 11:30:17 +0200, NoS <NoS@nospam.no> wrote:

>Volevo aggiornare il fatto che questa soluzione, da un giorno all'altro,
>non è più valida ed ho nuovamente problemi di invio mail da localhost
>con errore:

>fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:
>error:14090086:SSL routines:ssl3_get_server_certificate:certificate
>verify failed i.

>Non ho cambiato versione di php,
>non ho cambiato le librerie phpmailer,
>non ho cambiato antivirus.
>Che può essere successo e come posso risolvere?

A quale IP ti colleghi?

ping smtp.gmail.com

che IP numerico ti dà?

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916
NoS 8 Set 2017 18:50
Ciao,
il ping dice 74.125.206.108

non ci sto capendo più nulla... pensavo fosse l'antivirus come dicevi
nel tuo ultimo post quindi l'ho tolto e magicamente ha iniziato a
funzionare.

Poi ho messo un altro antivirus da AVG sono passato ad AVIRA ed il
problema è tornato.

Allora ho tolto anche questo antivirus ma il problema rimane...

Non so più che pesci pigliare


Il 08/09/2017 17:09, Leonardo Serni ha scritto:
> On Fri, 8 Sep 2017 11:30:17 +0200, NoS <NoS@nospam.no> wrote:
>
>> Volevo aggiornare il fatto che questa soluzione, da un giorno all'altro,
>> non è più valida ed ho nuovamente problemi di invio mail da localhost
>> con errore:
>
>> fsockopen(): SSL operation failed with code 1. OpenSSL Error messages:
>> error:14090086:SSL routines:ssl3_get_server_certificate:certificate
>> verify failed i.
>
>> Non ho cambiato versione di php,
>> non ho cambiato le librerie phpmailer,
>> non ho cambiato antivirus.
>> Che può essere successo e come posso risolvere?
>
> A quale IP ti colleghi?
>
> ping smtp.gmail.com
>
> che IP numerico ti dà?
>
> Leonardo
>
Leonardo Serni 8 Set 2017 20:56
On Fri, 8 Sep 2017 18:50:33 +0200, NoS <NoS@nospam.no> wrote:

>non ci sto capendo più nulla... pensavo fosse l'antivirus come dicevi
>nel tuo ultimo post quindi l'ho tolto e magicamente ha iniziato a
>funzionare.

>Poi ho messo un altro antivirus da AVG sono passato ad AVIRA ed il
>problema è tornato.

OK, descrizione sintetica del problema: per mandare una mail, Windows
o PHP devono comunque stabilire una connessione con il server.

Questa connessione viaggia criptata e protetta da un certificato, per
cui se non conosci il certificato, non puoi decifrarla. E quindi - se
sei un antivirus - neanche puoi sapere se nella mail c'è, il virus, o
non c'è. Ossia, rebus sic stantibus, gli antivirus non potrebbero mai
funzionare.

Per funzionare adottano un trucco - intercettano la connessione, e, a
chi l'ha aperta, giurano sulla loro mamma di essere GMail. E a GMail,
giurano sulla Bibbia di essere Windows (o PHP). La connessione fra il
client e l'antivirus però non può essere protetta dal certificato che
usa GMail, perché l'antivirus non lo possiede (non essendo GMail...).

E così l'antivirus ti manda un certificato farlocco, e - per impedire
al client di accorgersene - "inietta" i necessari root cert nell'OS o
nel client... ammesso che lo conosca.

Siccome PHP non è un client conosciuto o supportato questa maskirovka
non avviene, e il PHP si accorge che lo stanno prendendo pel sellino;
e da lì l'errore che ti compare.

La cosa migliore che *mi sembra* tu possa fare è cercare un antivirus
dove la scansione della mail sia disattivabile senza riavvio (per es.
è il caso di NOD32 Antivirus, visto che ce l'ho e ho controllato. Non
so se ce ne siano altri: mi pare però molto probabile di sì).

Poi disinstalli e ripulisci il sistema da AVG e Avira, riavvii, e vai
a installare l'antivirus più flessibile.

La ripulitura serve perché questa faccenda di intercettare l'SSL è il
massimo della "cosa spurca", e conosco un paio di s*****ati che dopo
aver provato tre antivirus uno dopo l'altro, si sono trovati senza la
possibilità di accedere alla mail (a dire il vero successo con XP Pro
SP3, in entrambi i casi ripulita la macchina con LSPFix - che però io
non so se funzioni con Win10).

In alternativa, anche una macchina virtuale per lo sviluppo - secondo
me almeno - è una strada da indagare. Io ce n'ho varie con VirtualBox
e non me ne sono mai pentito. Le connessioni da lì dentro passano, e,
oltretutto, puoi creare una VM con l'identico ambiente della macchina
di produzione.

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916
NoS 10 Set 2017 09:50
Ti ringrazio per l'esaustivo post, anche non risolvessi ho imparato
qualcosa.

Proverò la soluzione che mi hai indicato.
Grazie

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione PHP | Tutti i gruppi | it.comp.www.php | Notizie e discussioni php | Php Mobile | Servizio di consultazione news.