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

Python - Mengirim Email menggunakan SMTP

Halaman SebelumnyaHalaman Berikutnya

Simple Mail Transfer Protocol (SMTP) adalah protokol, yang menangani pengiriman email dan perutean email antar server email.

Python menyediakan smtplib modul, yang mendefinisikan objek sesi klien SMTP yang dapat digunakan untuk mengirim email ke mesin Internet mana pun dengan daemon pendengar 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 dari parameter

Objek SMTP memiliki metode instance yang disebut sendmail , yang biasanya digunakan untuk melakukan pekerjaan pengiriman pesan. Dibutuhkan tiga parameter

Contoh

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

#!/usr/bin/python

import smtplib

sender = '[email protected]'
receivers = ['[email protected]']

message = """From: From Person <[email protected]>
To: To Person <[email protected]>
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 pesan, menggunakan kutipan rangkap tiga, berhati-hati untuk memformat header dengan benar. Sebuah email memerlukan Dari , Kepada , dan Subjek header, dipisahkan dari badan email dengan baris kosong.

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

Jika Anda tidak menjalankan server SMTP di mesin lokal Anda, Anda dapat menggunakan smtplib klien untuk berkomunikasi dengan server SMTP jarak jauh. Kecuali jika Anda menggunakan layanan webmail (seperti Hotmail atau Yahoo! Mail), penyedia email Anda harus 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 diperlakukan sebagai teks sederhana. Bahkan jika Anda menyertakan tag HTML dalam pesan teks, itu akan ditampilkan sebagai teks sederhana dan tag HTML tidak akan diformat sesuai dengan sintaks HTML. Tetapi Python menyediakan opsi untuk mengirim pesan HTML sebagai pesan HTML yang 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 <[email protected]>
To: To Person <[email protected]>
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 perlu mengatur Content-type tajuk ke multibagian/campuran . Kemudian, bagian teks dan lampiran dapat ditentukan dalam batas .

Batas dimulai dengan dua tanda hubung diikuti dengan nomor unik, yang tidak dapat muncul di bagian pesan email. Batas akhir yang menunjukkan bagian akhir email juga harus diakhiri dengan dua tanda hubung.

File terlampir harus dikodekan dengan pack("m") berfungsi untuk memiliki pengkodean base64 sebelum transmisi.

Contoh

Berikut adalah contoh yang mengirimkan file /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 = '[email protected]'
reciever = '[email protected]'

marker = "AUNIQUEMARKER"

body ="""
This is a test email to send an attachement.
"""
# Define the main headers.
part1 = """From: From Person <[email protected]>
To: To Person <[email protected]>
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. Tipe Data Python
  2. Operator Python
  3. Pernyataan lulus python
  4. Argumen Fungsi Python
  5. Kamus Python
  6. Penanganan Pengecualian Python Menggunakan pernyataan coba, kecuali dan akhirnya
  7. TMP006 Sensor Suhu Pustaka Python menggunakan Raspberry pi,
  8. Sensor Suhu Python dan Raspberry Pi
  9. Python Average:Cara Menemukan RATA-RATA dari Daftar dengan Python
  10. Tukar Dua Variabel Python Tanpa Menggunakan Yang Ketiga