[PHPmailer] SMTP Aruba.. problemi

perseoclub

Utente Attivo
28 Nov 2015
91
0
6
Buongiorno,

ho letto un recente post simile a questo, ma poichè trattasi di SMTP google, per non creare confusione ne genero un altro, apposito per SMTP Aruba.

Sono alle prese con l'invio di mail a utenti che ho memorizzati nel DB del mio gestionale (che gira in locale, su Ubuntu e server Apache).

Avendo la mia azienda un dominio Aruba, vorrei sfruttare i loro SMTP per l'invio di mail.. e, dopo innumerevoli tentativi, ho configurato l'apposito script come segue:
PHP:
<?php

$mail_Host     = "smtps.aruba.it";                // oppure "smtps.miodominio_su_aruba.it" ???
$mail_SMTPsec  = "ssl";                            // SMTPsecurity: SSL, TLS
$mail_Port     = 465;                            // 25, 465, 587
$mail_username = "miacasellaAruba@miodominio_su_aruba.it";   // utente conosciuto dal servizio mail usato
$mail_password = "******";                // password dell'utente

//  Questi li ho trovati da un vecchio intervento di Marino..
ini_set("SMTP"     ,$mail_Host);
ini_set("smtp_port",$mail_Port);
ini_set("username" ,$mail_username);
ini_set("password" ,$mail_password);


require 'utility/phpmailer/PHPMailerAutoload.php';


$msg = "";

$mail = new PHPmailer();

$mail->SMTPDebug = 2;                                   // Enable verbose debug output

/**/

$mail->CharSet = "UTF-8";
//$mail->isSMTP();
$mail->Host= $mail_Host;
$mail->SMTPAuth = true;                     // Enable SMTP authentication
$mail->Username = $mail_username;            // SMTP username
$mail->Password = $mail_password;           // SMTP password
$mail->SMTPSecure = $mail_SMTPsec;          // Enable 'tls' encryption, `ssl` also accepted
$mail->Port = $mail_Port;                     // ARUBA → 25 (per TLS) oppure 465 (per SSL)

//    EMAIL

$mail->setFrom( $mail_username, 'MiaAzienda');

$mail->AddAddress('******@gmail.com');
$mail->AddReplyTo($mail_username, 'MiaAzienda');

$mail->Priority = 1;                        //    NULL → NO-SET, 1 → HIGH, 3 → NORMAL, 5 → LOW..

$mail->isHTML(true);                        // Set email format to HTML
//    SUBJECT
$mail->Subject ='MioSubject';
//    BODY
$body = '<p>Testo della mail..</p>';

$mail->Body = $body;

//    ALLEGATO
$mail->AddAttachment('MioAllegato.pdf');

//    SEND MAIL, con ESITO..
if( !$mail->Send() ){

    $msg = 'Message could not be sent. Mailer ERROR:';
    $msg .= '<br>'. $mail->ErrorInfo;

}else{

    $msg = 'Email inviata correttamente!';

}

//    CLOSE SMTP
$mail->SmtpClose();

//    SVUOTA CACHE?!
unset( $mail );

echo msg;
In fase di TEST la mail mi arriva correttamente (prima, settando port 25 e "tls" ..finiva in spam), ma al secondo tentativo le successive mail non mi arrivano.

Mi chiedo da cosa potesse dipendere:
- una limitazione di numero di invii di Aruba?
- un blocco del provider del mittente (in questo caso google)?
- altri motivi?

Grazie

PS: ho commentato la riga $mail->isSMTP() perché mi generava sempre un errore: "SMTP connect() failed"..
 
Ciao, a parte eventuali limitazioni da parte del gestore (ti basta contattarli), hai un rrcord PTR?
Altrimenti difficile che la mail non vada in spam
 
Serve a verificare, tramite reverse dns, che il dominio che invia sia effettuivamente collegato all ip.. l opposto del del record A


Se mi arriva una mail da dominio.tld con ip 123.456.789.000 ed a un reverse dns non mi risulta corrispondenza tra ip e domino probabile l invio della email nn sia autorizzata e sia spam


P.s.
Puoi chiedere ad aruba di settare iun PTR sul tuo dominuio, normalmente lo fanno in 24h e gratis
 
Ultima modifica:
Grazie mille! :)

Proprio oggi avevo aperto un "ticket" per chiedere info.. appena mi rispondono vi aggiorno.

Purtroppo sono inesperto di configurazione Server e mi perdo quando si parla di DNS e altro.. Spero non sia una cosa complicata.

Mi rimane il dubbio del perché alcune mail nella fase di "test" mi siano arrivate (in SPAM).
L'unica che è arrivata nella posta principale è stato quando ho modificato i metodi della classe phpmailer: HOST in "smtps..." (vs "smtp..."), PORT in 465 (vs 25) e SMTPsecurity in "ssl" (vs "tls").. Nei tentativi "test" di invio successivi non è arrivato più nulla..
 
Il ptr lo settano loro

Per la posta in spam poi nn recapitata prova a fare una prova verso altro dominio. è possibile che siano stati bloccati perchè erano vari tentativi sa un sender "dubbio" per cui il filtro antispam le ha blocxate a monte.. vedere i log aiuterebbe..
Nel testare altri riceventi evita yahoo che ha un filtro molto selettivo.
..e sempre ipotizzando non ci siano limiti da parte di aruba
 
Mentre aspettavo.. ho fatto due tentativi e sono andati entrambi a buon fine!

Tutte e due le mail inviate e recapitate!! Fantastico..

Ma come posso fare in fase di utilizzo per essere certo che l'utente riceva effettivamente la mail? C'è un modo per sapere se la mail è stata inviata e consegnata al destinatario?

PS: dove posso vedere i log?
 
conferma di recapito al server

Conferma di lettura (ma deve inviarla l utente)

Pixel di tracciamento ( l utente deve autorizzare i contenuti remoti)
 
Mi chiedevo se la classe phpmailer avesse un metodo che restituisce una notifica di avvenuta consegna al server del destinatario (indipendentemente che l'utente la apra o meno).

Intanto ho fatto altri tentativi.. e funziona alla perfezione! Ma ho un altro dubbio:
perché se invio la mail con modalità "ssl" sul destinatario viene recapitata come sicurezza "tls"?
 
Ultima modifica:

Discussioni simili