Script php: Inviare mail da locale o tramite smtp con PHPMailer

   difficoltà:  script script script script script

Script simili
27/6/2007


Abbiamo visto nel precedente articolo Script php: Inviare mail con PHPMailer con 2 allegati o oltre come iniziare ad usare PHPMailer.

Questa classe oltre a permetterci di inviare mail con php in formato html, di inserire un testo alternativo per client che non visualizzano l'html (multipart/alternative) e di aggiungere allegati (anche più di un allegato), ci permette di inserire l' smtp da cui inviare le mail. Questo puo' essere utile in due occasioni particolari: nel caso volessimo inviare mail da locale, magari se utilizziamo EasyPHP, oppure se non vogliamo inviare le mail direttamente dal server su cui risiede il sito, ma da un server di posta dedicato, utilizzando quindi un smtp differente.

Nel caso stessimo testando un sito in locale dovremo inserire come smtp il valore che utilizziamo per la posta in uscita(out.alice.it, mail.libero.it...etc)

La classe è molto semplice da usare. Innanzitutto scarichiamo PHPMailer da questo link.

Dalla cartella preleviamo il file class.phpmailer.php e il file class.smtp.php.

Per inviare la mail a questo punto basterà includere la classe e procedere con l'invio. Il codice completo sarà:

<?
require_once("class.phpmailer.php");

$mail = new PHPMailer();
$mail->IsSMTP(); // attiva l'invio tramiteSMTP
$mail->Host = "mail.serverposta.it"; // indirizzo smtp
$mail->From = "mittente@dominio.it";
$mail->FromName = "Nome Mittente";
$mail->AddAddress("destinatario@dominio.it");
$mail->IsHTML(true);
$mail->Subject = $oggetto;
$mail->Body = $bodyhtml;
$mail->AltBody = $bodytxt;
$mail->AddAttachment("public/filename_1.zip");
if(!$mail->Send()){
echo "Si è verificato un errore nell'invio della mail";
}else{
echo "Mail inviata con successo";
}
?>
Per tutte le voci vi rimando all'articolo Script php: Inviare mail con PHPMailer con 2 allegati o oltre, notiamo l'aggiunta di:

$mail->IsSMTP(); // attiva l'invio tramiteSMTP
$mail->Host = "mail.serverposta.it"; // indirizzo smtp
che ci dice di inviare le mail dall'smtp che settiamo.

Come detto la cosa positiva è la possibilità di testare l'invio delle mail con php da locale.




Commenti


  Augusto

17/9/2007 21:16:14

Ho un problema...Non riesco a far funzionare phpmailer...
L'errore in fase di invio e-mail è:

Mailer error: Language string failed to load: recipients_failed indirizzo@destinatario.it

Sapete aiutarmi??

  Fabio

17/9/2007 21:39:22

1 - hai provato con dati reali? stai usando l'invio tramite smtp? l'host è corretto?
2 - pare che possa essere un bug di phpmailer. A questo indirizzo dicono di provare a cambiare l'inclusione dei file di lingua

  Fabio

1/12/2007 19:14:13

Il mio problema invece è un altro:

se scrivo $mail->Subject = ""; la mail parte e arriva a destinazione (ma arriva senza oggetto)

se scrivo $mail->Subject = "Prova"; la mail parte (almeno lo script dice che la mail è stata spedita con successo) ma non arriva a destinazione..

Suggerimenti??


  Fabio

3/12/2007 9:14:47

Hai provato a mettere un'altro titolo? magari 'prova' te lo prende come spam...

  Alberto

23/4/2008 17:42:39

Ciao,
volevo capire come devo fare per stampare una riga a capo nel messaggio dell'emeil.
volevo dichiarare una variabile e inserire all'interno le parole e tra loro volevo inserire il carattere per andare a capo ma nn và, come devo fare?

  Tito

8/10/2008 18:06:58

Ottima spiegazione.. in 5 minuti ho fatto funzionare tutto!!!!... ora mi toccherà la parte difficile... devo fare la stessa cosa in asp per una ditta partner microsoft.. ma si puo oggigiorno usare asp , dotnet e sql server 2005 ????

ciaoooo

  marietto

10/4/2009 18:56:49

ciao , proprio non ci sono riuscito.. mi adderesti su msn?... ne ho bisogno davvero... ecco la mia email... l0rd0x@live.it ... ciao e grazie mille :S

  Paolo

23/7/2009 12:10:57

Ciao ragazzi!
Non ho capito come inviare DA LOCALE email con wamp... qualcuno può illuminarmi? Grazie mille e complimenti per l'articolo! ;)



Lascia un commento


Codice di controllo*:
Nome*:
Email/Link:
Testo*:
 
I campi contrassegnati con * sono obbligatori.