Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Mengirim Email dengan Python SMTP: Panduan Cepat dan Mudah

Halaman Sebelumnya Halaman Berikutnya  

Protokol Transfer Email Sederhana (SMTP) adalah protokol yang menangani pengiriman email dan pengiriman email antara server email.

Python menyediakan modul smtplib, yang mendefinisikan objek sesi klien SMTP yang dapat digunakan untuk mengirim email ke mesin Internet apa pun dengan daemon listener SMTP atau ESMTP.

Berikut adalah sintaks sederhana untuk membuat satu objek SMTP, yang nantinya dapat digunakan untuk mengirim email −

 import smtplib smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] ) 

Berikut adalah detail parameter −

Objek SMTP memiliki metode instance yang disebut sendmail, yang biasanya digunakan untuk melakukan tugas pengiriman pesan. Ia menerima tiga parameter −

Contoh

Berikut adalah cara sederhana untuk mengirim satu email menggunakan skrip Python. Cobalah sekali −

 #!/usr/bin/python import smtplib sender = 'from@fromdomain.com' receivers = ['to@todomain.com'] message = """From: From Person <from@fromdomain.com> To: To Person <to@todomain.com> Subject: SMTP e-mail test This is a test e-mail message. """ try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email" 

Di sini, Anda telah menempatkan email dasar dalam message, menggunakan tanda kutip tiga, dengan memperhatikan pemformatan header dengan benar. Sebuah email memerlukan header From, To, dan Subject, yang dipisahkan dari isi email dengan baris kosong.

Untuk mengirim email Anda menggunakan smtpObj untuk terhubung ke server SMTP di mesin lokal dan kemudian menggunakan metode sendmail bersama dengan pesan, alamat dari, dan alamat tujuan sebagai parameter (meskipun alamat dari dan ke ada di dalam email itu sendiri, ini tidak selalu digunakan untuk mengirim email).

Jika Anda tidak menjalankan server SMTP di mesin lokal Anda, Anda dapat menggunakan klien smtplib untuk berkomunikasi dengan server SMTP jarak jauh. Kecuali jika Anda menggunakan layanan webmail (seperti Hotmail atau Yahoo! Mail), penyedia email Anda harus telah memberikan detail server email keluar yang dapat Anda berikan kepada mereka, sebagai berikut −

 smtplib.SMTP('mail.your-domain.com', 25) 

Mengirim Email HTML menggunakan Python

Saat Anda mengirim pesan teks menggunakan Python, maka semua konten dianggap sebagai teks sederhana. Bahkan jika Anda menyertakan tag HTML dalam pesan teks, itu ditampilkan sebagai teks sederhana dan tag HTML tidak akan diformat sesuai sintaks HTML. Namun Python menyediakan opsi untuk mengirim pesan HTML sebagai pesan HTML sebenarnya.

Saat mengirim pesan email, Anda dapat menentukan versi Mime, tipe konten, dan set karakter untuk mengirim email HTML.

Contoh

Berikut adalah contoh untuk mengirim konten HTML sebagai email. Cobalah sekali −

 #!/usr/bin/python import smtplib message = """From: From Person <from@fromdomain.com> To: To Person <to@todomain.com> MIME-Version: 1.0 Content-type: text/html Subject: SMTP HTML e-mail test This is an e-mail message to be sent in HTML format <b>This is HTML message.</b> <h1>This is headline.</h1> """ try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email" 

Mengirim Lampiran sebagai Email

Untuk mengirim email dengan konten campuran memerlukan untuk mengatur header Content-type ke multipart/mixed. Kemudian, bagian teks dan lampiran dapat ditentukan dalam boundaries.

Sebuah boundary dimulai dengan dua tanda hubirng diikuti oleh angka unik, yang tidak dapat muncul dalam bagian pesan email. Sebuah boundary akhir yang menunjukkan bagian akhir email juga harus diakhiri dengan dua tanda hubirng.

Berkas yang dilampirkan harus dienkode dengan fungsi pack("m") untuk memiliki enkode base64 sebelum transmisi.

Contoh

Berikut adalah contoh, yang mengirim berkas /tmp/test.txt sebagai lampiran. Cobalah sekali −

 #!/usr/bin/python import smtplib import base64 filename = "/tmp/test.txt" # Read a file and encode it into base64 format fo = open(filename, "rb") filecontent = fo.read() encodedcontent = base64.b64encode(filecontent) # base64 sender = 'webmaster@tutorialpoint.com' reciever = 'amrood.admin@gmail.com' marker = "AUNIQUEMARKER" body =""" This is a test email to send an attachement. """ # Define the main headers. part1 = """From: From Person <me@fromdomain.net> To: To Person <amrood.admin@gmail.com> Subject: Sending Attachement MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=%s --%s """ % (marker, marker) # Define the message action part2 = """Content-Type: text/plain Content-Transfer-Encoding:8bit %s --%s """ % (body,marker) # Define the attachment section part3 = """Content-Type: multipart/mixed; name=\"%s\" Content-Transfer-Encoding:base64 Content-Disposition: attachment; filename=%s %s --%s-- """ %(filename, filename, encodedcontent, marker) message = part1 + part2 + part3 try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, reciever, message) print "Successfully sent email" except Exception: print "Error: unable to send email" 

Python

  1. Menguasai Tipe Data Python: Panduan Praktis
  2. Menguasai Operator Python: Panduan Komprehensif
  3. Menguasai Pernyataan Pass Python: Panduan Praktis
  4. Menguasai Argumen Fungsi Python: Posisi, Kata Kunci, dan Parameter Default
  5. Menguasai Kamus Python: Pembuatan, Manipulasi, dan Teknik Lanjutan
  6. Menguasai Penanganan Exception Python: try, except, else, dan finally Dijelaskan
  7. Sensor Suhu Infra Merah TMP006 dengan Raspberry Pi: Panduan Library Python & Pengaturan
  8. Membuat Sensor Suhu Jarak Jauh dengan Raspberry Pi dan Python – Panduan Langkah demi Langkah
  9. Menghitung Rata-rata di Python: Panduan Praktis
  10. Tukar Dua Variabel Python dengan Mudah Tanpa Variabel Sementara