I cookie permettono il funzionamento di alcuni servizi di questo blog. Utilizzando questi servizi, accetti l'utilizzo dei cookie da parte nostra. Ok Rifiuta

Attenzione: a breve questo blog verrà dismesso e sarà attivo il nuovo a questo indirizzo.

Mandare mail in PHP con allegati

In questo articolo voglio presentarvi una libreria in PHP molto funzionale. Molte volte si vuole poter mandare delle mail tramite i pannelli di amministrazione dei siti (CMS). Questo per informare, ad esempio, i clienti di offerte, newsletter o per mandare delle notifiche. Ma esattamente come si fa ad inviare delle e-mail con il linguaggio PHP?

Innanzitutto PHP, per soddisfare questa esigenza, ha una funzione chiamata mail() che, passandole determinati argomenti, compone il messaggio di posta elettronica e lo invia ai destinatari. Un semplice esempio di invio mail può essere:

<?php

$headers="From: info@nomesito.it";
// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "info@nomedestinatario.it";
// L' OGGETTO DELLA MAIL
$subject = "Oggetto: ". trim(stripslashes($oggetto)) . "\n";
// COSTRUZIONE DEL CORPO DEL MESSAGGIO
$body .= "Hai ricevuto un'e-mail dal sito www.nomesito.it. \n";
$body .= "Messaggio: " . trim(stripslashes($messaggio)) . "\n";

@mail($to, $subject, $body, $headers)

?>

image

Con queste semplici righe si può mandare un'e-mail ai destinatari assegnati alla variabile $to. Ma se volessimo inviare dei messaggi con degli allegati e con i campi Ccn? Allora qui, con questa funzione, le cose si complicano perché bisognerebbe avere una buona conoscenza dei protocolli di rete. Per superare questo problema possiamo utilizzare una libreria, open source, chiamata PHP Mailer che potete trovare qui sul canale GitHub. Per implementare un'email con uno o più allgati si utilizza un semplice codice come il seguente:

<?php

include("class.phpmailer.php");

$mail = new PHPMailer();
$mail->From     = "info@nomesito.it";
$mail->FromName = "NOMESITO.IT";
$mail->AddAddress("nomedestinatario@mail.it");
$mail->IsHTML(true);
$mail->AddBCC($indirizzibcc);
$mail->Subject  =  $oggetto;
$mail->Body     =  $messaggio;
$mail->AltBody  =  "";
$mail->AddAttachment("allegati/info1.pdf"); 

$mail->AddAttachment("allegati/info2.pdf");
if(!$mail->Send()){
    echo "ERRORE nell'invio della mail.";
}else{
    echo "SUCCESSO l'email è stata inviata!";
}

?>

Come avete visto, anche chi non ha esperienza con la programmazione a oggetti in PHP riesce a capire pienamente il codice esempio. Con questo riusciamo in modo semplice a inviare anche molti allegati.

I più letti

Seguici su Facebook

Seguici su Google+

Renzo Cappelli

miafoto

Sono un appassionato di informatica, mi dedico allo sviluppo web e alla gestione dei sistemi web-based: realizzo siti e progetto software gestionale per privati e aziende. Ho tanta passione per tutto quello che riguarda il web e le nuove tecnologie, lavoro bene in team e collaboro con aziende e professionisti di settore.

Commenti

NON CI SONO ANCORA COMMENTI.

Lascia il tuo commento