Kreatore.it

Sviluppo applicativi Lamp

Mail() e MIME:Multiporpouse Internet Mail Extensions

Scritto da: | Categorie: ,

Avendo la necessità di inviare una mail con all’interno degli allegati o delle immagini, la soluzione più semplice, lato server, è quella di utilizzare la funzione nativa di php mail().

Questa funzione però è piuttosto limitata nella possibilità di visualizzazione. Da qui entra in gioco quello che sono le MIME, estensioni della funzione internet mail.

Poichè in rete è presente un articolo esaustivo e semplice scritto sa Ermanno Ancona nel lontano 2004 non mi dilungo sulla spiegazione del codice poichè viene gaà trattata bene ed esaustivamente.

Quello che segue è il codice che ho utilizzato io per risolvere il problema in cui ero incappato:

// selezioniamo il o i destinatari
$to ="utente@dominio.it" 
// costruiamo alcune intestazioni generali
$header = "From: Kreatore <info@kreatore.it>\n";
// generiamo la stringa che funge da separatore
$boundary = "==String_Boundary_x" .md5(time()). "x";
//carichiamo il file di cui abbiamo bisogno encodato in base64
$inline = chunk_split(base64_encode(file_get_contents('images/logo.jpg')));
// costruiamo le intestazioni che specificano
// un messaggio costituito da più parti alternative
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/alternative;\n";
$header .= " boundary=\"$boundary\";\n\n";
// questa parte del messaggio viene visualizzata
// solo se il programma non sa interpretare
// i MIME poiché è posta prima della stringa boundary
$messaggio = "Se visualizzi questo testo il tuo programma non supporta i MIME\n\n";
// costruiamo la sezione in formato html
$messaggio .= "--$boundary\n";
$messaggio .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
$messaggio .= '<html><body><h1>Kreatore.it</h1><p>Buongiorno '.$variabilenome.'<br/>  E' stato pubblicato un nuovo articolo sul sito <a href="http://www.kreatore.it">Kreatore.it</a><br /> Vieni a visitarlo.</p>
<p><img src="cid:KREATORElogo" alt=""></p></body></html>\n\n';
// usiamo la codifica base64 per trasmettere il file
$image = chunk_split(base64_encode(file_get_contents('images/logo.jpg')));
// costruiamo la sezione contenente l'immagine
// cui attribuiamo l'id KREATORElogo
$messaggio .= "--$boundary\n";
$messaggio .= "Content-ID: <KREATORElogo>\n";
$messaggio .= "Content-Type: image/jpeg\n";
$messaggio .= "Content-Transfer-Encoding: base64\n\n";
$messaggio .= "$image\n\n";
// chiusura del messaggio con la stringa boundary
$messaggio .= "--$boundary--\n";
$subject = "Conferma di nuovo articolo";
@mail($to,$subject, $messaggio, $header);
Tags: ,

Articoli Simili

Cerca per tag

admin, ajax, android, apache, app, audio, backup, beta, blog, bordi, browser, caffè, calcolo, calibre, categorie, cd, chrome, clienti, cloud, cms, condivisione, css3, csv, database, debian, desktop, download, drive, driver, dump, e-reader, evolution, file, firefox, flash, font, foto, freelance, funzioni, gd, gedit, gimp, htc, html5, iexplorer, immagini, indirizzo, inkscape, internet, ip, iphone, java, javascript, jquery, kivy, kv, less, lettura, link, linux, live, mac, macchina, mail, menu, mobile, mod, mp3, mysql, nautilus, network, newsletter, ombra, open office, opera, os, paypal, pdf, picasa, plugin, python, safari, skype, smartphone, smf, ssh, stampante, tabs, tag, tastiera, terminale, test, testo, textile, textpattern, theme, ubuntu, usb, video, web editor, website, windows, wysiwyg, xfce4, youtube

Cerca per categoria

© 2011 Kreatore.it :: Sito web realizzato da Marco Casalegno

TXP | Admin | Home | Back to Top

Tutte le informazioni e le immagini sono rilasciate sotto licenza secondo la Creative Commons License 2.0.