phpmailer su aruba

Avevo appena apprezzato le potenzialità della classe phpmailer in locale quando provando gli stessi script in remoto su Aruba server Linux mi sono cascate le braccia.

Ad uno script corretto (copiato del resto da un articolo su un ben noto sito) e che funziona in locale non c'è verso di fargli mandare email anche dal server. :'( :'(

require_once ('phpmailer/class.phpmailer.php'); 

$mailer = new PHPMailer(); 

$mailer->AddAddress('xxx@email.it'); 
$mailer->Subject = 'This is a test'; 

$htmlBody = '<html><head><title>My HTML Email</title></head><body> 
<img src="http://www.phpfreaks.com/images/phpfreaks_logo.jpg" alt="PHP Freaks" /><br /> 
<h2>PHP Freaks Rules!</h2> 
<p>We invite you to visit <a href="http://www.phpfreaks.com" title="PHP Freaks">PHP Freaks.com</a> for a loving community of PHP Developers who enjoy helping each other learn the language!</p> 
<p>Sincerely,<br />PHP Freaks Staff</p>'; 

$mailer->Body = $htmlBody;
$mailer->isHTML(true);
if(!$mailer->Send()) { 
  echo 'There was a problem sending this mail!'; 
} 
else  { 
  echo 'Mail sent!'; 
} 
$mailer->ClearAddresses(); 
$mailer->ClearAttachments();

Qualcuno di voi mi saprebbe dire perché non invia?

Cosa che poi mi fa imbestialire  >:( provando da remoto la pagina phpmailer/test/phpmailer_test.php (compresa nel file zip che si scarica) mi invia ben 15 email di prova che attestano che tutto è ok. Un modo per inviare anche da lì allora c'è, ma quale?

inviato 9 anni fa
usecram
modificato 9 anni fa
X 0 X

qual'è l'esito di queste righe?

if(!$mailer->Send()) { 
  echo 'There was a problem sending this mail!'; 
} 
else  { 
  echo 'Mail sent!'; 
}
risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ah già scusa non l'avevo detto: ovviamente Mail sent! solo che non arriva nulla

risposto 9 anni fa
usecram
X 0 X

prova ad usare l'invio tramite SMTP

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Tutto ok, scusate il disturbo. Posto il codice (email in HTML con inline attachment) per quanti dovessero in futuro avere il mio stesso problema.  ;D

require_once ('phpmailer/class.phpmailer.php'); 

$mail = new PHPMailer();
// Telling the class to use SMTP
$mail->IsSMTP();
// SMTP server
$mail->Host = "smtp.tuodominio.it";
// The from email address should be accepted by the smtp server
$mail->From = "info@tuodominio.it";
$mail->AddAddress("indirizzoemail@dominio.it");

$mail->Subject = "first mailing";
$mail->Body = "hi ! \n\n this is <b>First mailing</b> I made myself with PHPMailer !";
$mail->IsHTML(true);
$mail->AddEmbeddedImage("img.gif", "img", "img.gif");
$mail->Body .= 'Embedded Image: <img alt="My Logo" src="cid:img"> Here is an image!';
$mail->WordWrap = 50;

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

E mi raccomando:

...the from email address should be accepted by the smtp server. If not, sending the mail out will fail.

>>http://phpmailer.sourceforge.net/tutorial.html

Ah un'altra cosa su un altro tutorial trovato per caso ho letto:

l' utilizzo di SMTPKeepAlive e di SmtpClose è molto utile nel caso in cui si effettui l' invio di piu' di una mail in quanto si evita di continuare a collegarsi e scollegarsi al server SMTP. Usando queste 2 funzioni della classe la conessione rimane aperta fino a che non viene chiamata appunto SmtpClose, con vantaggi riguardo al tempo di invio ed al traffico generato.

Cosa ne pensi, o sommo Gianni?

risposto 9 anni fa
usecram
modificato 9 anni fa
X 0 X

mi fido...  ;)

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda