Tip MIME (višenamjenske ekstenzije Internet pošte) predstavlja tip i format datoteke, definirajući kako se ta datoteka prenosi na Internet. Ovo osigurava kompatibilnost na različitim sistemima i omogućava pretraživačima da shvate kako rukovati različitim tipovima datoteka. Važnost postavljanja ispravnog MIME tipa pri radu sa web tehnologijama ne može se precijeniti. U Pythonu se to može postići kroz različite biblioteke i funkcije koje će biti detaljno opisane u ovom članku.
Python je moćan jezik koji ima ugrađene module i biblioteke trećih strana za rukovanje gotovo svim zadacima, uključujući postavke MIME tipa. Ovo omogućava programerima da kreiraju i šalju multimedijalnu poštu, jasno navodeći tip sadržaja kao što je HTML, audio, vizuelni i drugi koristeći protokole kao što su SMTP ili HTTP.
Korištenje modula Mimetypes u Pythonu
Modul `mimetypes` u Pythonu pruža funkcije za određivanje ili pogađanje tipa datoteke. Evo primjera kako ga koristiti:
import mimetypes
mimetype = mimetypes.guess_type('image.jpg')[0]
print(mimetype)
Ovo će ispisati: 'image/jpeg', što je MIME tip za jpeg slike. U ovom kodu smo koristili funkciju `guess_type`, koja pogađa tip datoteke na osnovu njene ekstenzije.
Modul `mimetypes` obrađuje mapiranja od ekstenzija naziva datoteke do MIME tipova i od MIME tipova do ekstenzija imena datoteke. Ako je opciono strict true (podrazumevano), koriste se samo zvanični MIME tipovi.
Slanje e-pošte sa smtplib i bibliotekama e-pošte
Python standardna biblioteka obezbjeđuje `smtplib` za definiranje objekta sesije SMTP klijenta koji se može koristiti za slanje e-pošte na bilo koju internet mašinu sa SMTP ili ESMTP demonom slušaoca.
Druga Python biblioteka, `e-pošta`, služi za upravljanje porukama e-pošte uključujući MIME i druge dokumente poruka zasnovane na RFC 2822. Omogućuje programerima da kreiraju, manipulišu i čitaju poruke e-pošte.
Evo jednostavnog primjera korištenja ove dvije biblioteke za slanje e-pošte s MIME tipom:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
message = MIMEMultipart("alternative")
message["Subject"] = "Hello, World!"
text = """
Hello,
This is a simple text email."""
html = """
<html>
<body>
<p>Hello,<br>
This is a simple HTML email!
</p>
</body>
</html>
"""
part1 = MIMEText(text, "plain")
part2 = MIMEText(html, "html")
message.attach(part1)
message.attach(part2)
with smtplib.SMTP('localhost') as server:
server.send_message(message)
U gornjem kodu, MIMEText objekti su kreirani i za običan tekst i za HTML podatke. Oni se zatim dodaju u MIMEMmultipart objekt pomoću metode attach(). Ova poruka e-pošte ima MIME tip višedijelnog/alternativnog.