Topik ini menyediakan contoh panggilan SMTP yang berlaku untuk Python 3.6 dan versi di atasnya.
Konfigurasi Alibaba Mail
Alamat server SMTP: smtp.sg.aliyun.com
Port: tanpa enkripsi adalah 25, dengan enkripsi SSL adalah 465
# -*- coding:utf-8 -*-
import smtplib
import email
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
# Alamat email pengirim.
from email.utils import formataddr
username = ''
# Kata sandi email pengirim.
password = ''
# Alamat balasan kustom
replyto = ''
From = formataddr(["nama panggilan pengirim kustom",'' ]) # nama panggilan + alamat pengirim (atau pengirim pengganti)
to = ','.join(['', ''])
cc = ''
bcc = ''
# Alamat penerima atau daftar alamat. Mendukung beberapa penerima.
rcptto = [to, cc, bcc]
# msg adalah informasi yang perlu ditampilkan dalam email
msg = MIMEMultipart('alternative')
msg['Subject'] = Header('pengujian pengiriman smtp')
msg['from'] = From
msg['rcptto'] = ','.join(rcptto)
print ('Daftar diterima:', msg['rcptto'], type(msg['rcptto']))
msg['Reply-to'] = replyto
msg['Message-id'] = email.utils.make_msgid()
msg['Date'] = email.utils.formatdate()
# Bangun bagian teks/plain alternatif
textplain = MIMEText ('Email ini untuk pengujian', _subtype='plain', _charset='UTF-8')
msg.attach(textplain)
# Bangun bagian teks/html alternatif
texthtml = MIMEText ('Ini adalah email uji', _subtype='html', _charset='UTF-8)
msg.attach(texthtml)
try:
client = smtplib.SMTP_SSL('smtp.sg.aliyun.com', 465)
print ('Layanan dan port terhubung')
except:
print ('Layanan dan port tidak tersedia')
exit(1)
# Aktifkan mode DEBUG.
try:
client.set_debuglevel(0)
client.login(username, password)
print ('Kata sandi diverifikasi')
except:
print ('Verifikasi kata sandi gagal')
exit(1)
client.sendmail(username, msg['rcptto'].split(','), msg.as_string())
client.quit()
print ('Email berhasil dikirim! ')