[PHP] Invio Mail

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
Buongiorno, sono tre giorni che sto impazzendo sulla realizzazione dell' invio mail tramite php.

Ho provato con la funzione <code>mail()</code> ma non riesco a trovare nulla di esaustivo sulla configurazione corretta del php.ini/ini_set() per gmail;

poi su internet ho trovato la class PHPMAiler, ma anche con questa nulla, in quanto ci sono tante configurazioni diverse per la stessa cosa ma che non funzionano mai o il file sorgente che scarico è corrotto o non funzionante in maniera corretta; nelle varie modifiche di questa classe, sono arrivato al punto che il server mi dice "errore nella spedizione: Extension missing: openssl"

e con php.info() ottengo
OpenSSL support disabled (install ext/openssl)

ma non riesco ad andare oltre


Come posso fare ???
 

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
Ottengo questo errore:

Message could not be sent. Mailer Error: SMTP Error: Could not authenticate.


questo è il codice

PHP:
<?php
 
 // Import PHPMailer classes into the global namespace
 // These must be at the top of your script, not inside a function
 use PHPMailer\PHPMailer\PHPMailer;
 use PHPMailer\PHPMailer\Exception;
 
 require 'PHPMailer/src/Exception.php';
 require 'PHPMailer/src/PHPMailer.php';
 require 'PHPMailer/src/SMTP.php';
 
 // Instantiation and passing `true` enables exceptions
 $mail = new PHPMailer(true);
 
 try {
     //Server settings
     //$mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Enable verbose debug output
     $mail->isSMTP();                                            // Send using SMTP
     $mail->Host       = 'smtp.gmail.com';                    // Set the SMTP server to send through
     $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
     $mail->Username   = 'user';                     // SMTP username
     $mail->Password   = 'pwd';                               // SMTP password
     $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
     $mail->Port       = 587;                                    // TCP port to connect to
 
     //Recipients
     $mail->setFrom('[email protected]', 'Mailer');
     $mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
     //$mail->addAddress('[email protected]');               // Name is optional
     //$mail->addReplyTo('[email protected]', 'Information');
     //$mail->addCC('[email protected]');
     //$mail->addBCC('[email protected]');
 
     // Attachments
     //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
     //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
 
     // Content
     $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';
 
     $mail->send();
     echo 'Message has been sent';
 } catch (Exception $e) {
     echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
 }

?>



Devo modificare anche in SMTP.php ????
 

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
Message could not be sent. Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting


come risolvo ??? non ne esco piu


Sto vedendo in questo link e sembrerebbe un problema di ssl ma non capisco, nel php.ini ho tolto il ";" per abilitarlo, ho provato ad inserire

PHP:
echo ( extension_loaded ( ' openssl ' )? ' SSL caricato ' : ' SSL non caricato ' ) .  " \ n " ;

e ottengo


SSL non caricato \ n Message could not be sent. Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
 
Ultima modifica:

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
prova a guardare qui,
https://forum.mrw.it/threads/linvio...o-offerto-da-vari-provider.40100/#post-158302
trovi uno zip che contiene uno script con phpmailer funzionante
trovi anche le definizioni per accedere al servizio gmail,

ricorda solo che devi abilitare gmail ad accettare le app poco sicure, considerando tale, l'accesso con script php


nulla stessi problemi, le configurazioni degli esempi di questi link li mettevo anche io, ma il problema mi rimane
 

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
Cerco di farvi capire meglio in modo da trovare una soluzione;

la web application che sto realizzando risiede su un server con window server 2012, nella gestione del IIS del server ho questa schermata

Schermata 2019-10-28 alle 15.57.05.png



ho provato a configurarla con i dati corretti ma niente;

cosi ho iniziato a modificare il php.ini

Schermata 2019-10-28 alle 15.59.15.png



per utilizzare la funzione mail() di php ma niente.


Cosi ho cercato una soluzione con PHPMailer ma sembra non funzionare.....


ora vorrei capire se è un problema di server o di codice.

PS. la mail definitiva non sarà gmail ma aruba o, in alternativa, se è possibile realizzare una mail locale sul server.... anche se non so come fare adesso.
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Aruba mette a disposizione le mail, non dovrebbe dare (se non ricordo male, in acquisto dominio + server) la possibilità di gestire un NS per MX diverso da quello previsto.

Cosa diversa se hai acquistato la gestione DNS + Server, in quel caso dovrebbe funzionare, a patto di installare e configurare il tutto a regola d'arte:
DNS
RDNS
SPF
DMARK
DKIM

Se hai problemi con servizi pronti, lascia perdere questa strada, ti fai solo del male per non concludere niente.

Con la config base di gmail, la libreria funziona alla perfezione, testata e con soluzione postata in alto ma....
Effettua il login a google, imposta i permessi delle app e disabilita il controllo a 2 fattori.

Utilizzando smpt di aruba, non hai problemi con la libreria!


ora vorrei capire se è un problema di server o di codice
Probabilmente di "server" meglio dire DNS, non ha i record corretti!!!
 
  • Like
Reactions: AC1

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
Aruba mette a disposizione le mail, non dovrebbe dare (se non ricordo male, in acquisto dominio + server) la possibilità di gestire un NS per MX diverso da quello previsto.

Cosa diversa se hai acquistato la gestione DNS + Server, in quel caso dovrebbe funzionare, a patto di installare e configurare il tutto a regola d'arte:
DNS
RDNS
SPF
DMARK
DKIM

Se hai problemi con servizi pronti, lascia perdere questa strada, ti fai solo del male per non concludere niente.

Con la config base di gmail, la libreria funziona alla perfezione, testata e con soluzione postata in alto ma....


Utilizzando smpt di aruba, non hai problemi con la libreria!



Probabilmente di "server" meglio dire DNS, non ha i record corretti!!!


ho fatto la disabilitazione dell'autenticazione a 2 fattori, ho attivato invio mail da siti meno sicuri....


comunque ora ho resettato tutto e sto ripercorrendo la strada da zero,

sto usando la funzione mail() di php modificando il php.ini

e ho attenuto questo errore:

Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. b62sm108878wmc.13 - gsmtp in C:\inetpub\wwwroot\prove\mail.php on line 22
Errore. Nessun messaggio inviato.

nel php.ini ho inserito

SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = [email protected]
 

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
SSL no STARTTLS! su porta 465 se non ricordo male!


Warning: mail(): Failed to connect to mailserver at "smtp.gmail.com" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\inetpub\wwwroot\prove\mail.php on line 22
Errore. Nessun messaggio inviato.
 

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
Funzione Mail
Message has been sent


MAIL INVIATA !!!!!!!!!!:D

Faccio una guida dettaglia e la riposto qui, i posteri ci ringrazieranno.

Grazie a voi ragazzi per il sostegno e l'aiuto costante;)
 

AC1

Utente Attivo
13 Nov 2017
47
2
8
Barletta
PHPMailer

1. download PHPMailer -> https://github.com/PHPMailer/PHPMailer


2. mail.php

PHP:
<?php
 
 // Import PHPMailer classes into the global namespace
 // These must be at the top of your script, not inside a function
 use PHPMailer\PHPMailer\PHPMailer;
 use PHPMailer\PHPMailer\Exception;
 
 require 'PHPMailer/src/Exception.php';
 require 'PHPMailer/src/PHPMailer.php';
 require 'PHPMailer/src/SMTP.php';
 
 // Instantiation and passing `true` enables exceptions
 $mail = new PHPMailer(true);
 
 try {
     //Server settings
     //$mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Enable verbose debug output
     $mail->isSMTP();                                            // Send using SMTP
     $mail->Host       = 'smtp.gmail.com';                    // Set the SMTP server to send through
     $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
     $mail->Username   = 'user';                     // SMTP username
     $mail->Password   = 'pwd';                               // SMTP password
     $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
     $mail->Port       = 587;                                    // TCP port to connect to
 
     //Recipients
     $mail->setFrom('[email protected]', 'Mailer');
     $mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
     //$mail->addAddress('[email protected]');               // Name is optional
     //$mail->addReplyTo('[email protected]', 'Information');
     //$mail->addCC('[email protected]');
     //$mail->addBCC('[email protected]');
 
     // Attachments
     //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
     //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
 
     // Content
     $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';
 
     $mail->send();
     echo 'Message has been sent';
 } catch (Exception $e) {
     echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
 }

?>

3. nell'account Gmail ->Impostazioni->Sicurezza
-controllare il blocco del dispositivo che ha effettuato l'accesso dichiarando che siamo stati noi.
Eventi recenti relativi alla sicurezza

-disabilitare controllo a due fattori

-consenso ad app meno sicure
Accesso app meno sicure
 
Discussioni simili
Autore Titolo Forum Risposte Data
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
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
cobra_72 [PHP] problema invio multiplo allegati mail PHP 21
Z Limite invio newsletter con PHP - mail() PHP 4
E Rimuovere "dati in memoria" dopo invio mail [PHP] PHP 18
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
M configurazione invio mail php PHP 25
S Form invio mail html, con invio tramite file denominato invio.php PHP 8
W problemi incomprensibili invio mail dal sito in PHP PHP 3
F invio di una mail tramite script php PHP 6
antonio_oti Invio di e-mail tramite PHP PHP 23
O [PHP] Problema Invio Mail PHP 2
S php form invio mail PHP 3
A invio mail con php PHP 6
N Invio dati su e-mail da fom php PHP 8
C problema invio mail con form php PHP 0
C Mail e php problema invio PHP 11
V Problema con l'invio delle mail in locale (usando quindi easy php) PHP 16
R Abilitare server php per invio mail PHP 12
SolidSnake4 invio mail html con php non va PHP 6
B Problema invio mail con script php verso i dominii libero PHP 9
M Invio dati database via email php PHP 0
K [php]form invio dati PHP 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
G Invio form con PHP PHP 3
A invio massivo dati a file php Javascript 4
P Funzione jQuery Ajax invio file a php jQuery 1
G creazione menu a tendina e invio a pagina php PHP 1
L [PHP] Invio Immagini PHP 1
I [PHP] Invio sms multipli PHP 4
A [PHP] Invio automatico dati da form PHP 6
ANDREA20 [PHP] Modulo email invio PHP 5
Shyson [PHP] Codice iscrizione e invio avviso nuovi articoli PHP 3
Tommy03 Errore invio email con PHP PHP 1
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
A [PHP] errore 404 e invio mai path pagina con link interrotto PHP 2
A [PHP] Invio messaggio a tutti gli iscritti PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1
C [PHP] Problema Invio Email Elseif PHP 2

Discussioni simili