Mode Permintaan SMTP

Berikut adalah alur sesi SMTP.

S: 220 EngageLab Inbound Server ESMTP Haraka 2.2.4 siap C: ehlo ifaxin.com S: 250-EngageLab Inbound Server Halo, Haraka siap melayani Anda. S: 250-PIPELINING S: 250-8BITMIME S: 250-SIZE 16000000 S: 250 AUTH LOGIN C: AUTH LOGIN base64(api_user) S: 334 UGFzc3dvcmQ6 C: base64(api_key) S: 235 Autentikasi berhasil C: mail FROM:<support@ifaxin.com> S: 250 pengirim <support@ifaxin.com> OK C: rcpt TO:<ben@ifaxin.com> S: 250 penerima <ben@ifaxin.com> OK C: data S: 354 silakan lanjutkan C: ... ... C: . S: 250 #1426390015358_15_6484_8661.sc-10_10_127_51-inbound#Queued C: quit S: 221 EngageLab Inbound Server menutup koneksi. Semoga hari Anda menyenangkan
              
              S: 220 EngageLab Inbound Server ESMTP Haraka 2.2.4 siap

C: ehlo ifaxin.com

S: 250-EngageLab Inbound Server Halo, Haraka siap melayani Anda.
S: 250-PIPELINING
S: 250-8BITMIME
S: 250-SIZE 16000000
S: 250 AUTH LOGIN

C: AUTH LOGIN base64(api_user)

S: 334 UGFzc3dvcmQ6

C: base64(api_key)

S: 235 Autentikasi berhasil

C: mail FROM:<support@ifaxin.com>

S: 250 pengirim <support@ifaxin.com> OK

C: rcpt TO:<ben@ifaxin.com>

S: 250 penerima <ben@ifaxin.com> OK

C: data

S: 354 silakan lanjutkan

C: ... ...
C: .

S: 250 #1426390015358_15_6484_8661.sc-10_10_127_51-inbound#Queued

C: quit

S: 221 EngageLab Inbound Server menutup koneksi. Semoga hari Anda menyenangkan

            
Tampilkan blok kode ini di jendela mengambang

Catatan: Panggilan SMTP akan mengembalikan 536 frequency limited, artinya total panggilan API dan SMTP per apiuser per menit tidak boleh melebihi 30.000 kali.

Menggunakan Fungsi Label untuk Akses SMTP

Saat verifikasi, ID label digabungkan setelah API_USER.

api_user + '#' + label_id

Tanpa label:

S: 250-EngageLab Inbound Server Halo, Haraka siap melayani Anda. S: 250-PIPELINING S: 250-8BITMIME S: 250-SIZE 16000000 S: 250-STARTTLS S: 250 AUTH LOGIN C: AUTH LOGIN base64(api_user)
              
              S: 250-EngageLab Inbound Server Halo, Haraka siap melayani Anda.
S: 250-PIPELINING
S: 250-8BITMIME
S: 250-SIZE 16000000
S: 250-STARTTLS
S: 250 AUTH LOGIN

C: AUTH LOGIN base64(api_user)

            
Tampilkan blok kode ini di jendela mengambang

Dengan label:

S: 250-EngageLab Inbound Server Halo, Haraka siap melayani Anda. S: 250-PIPELINING S: 250-8BITMIME S: 250-SIZE 16000000 S: 250-STARTTLS S: 250 AUTH LOGIN C: AUTH LOGIN base64(api_user + '#' + label_id)
              
              S: 250-EngageLab Inbound Server Halo, Haraka siap melayani Anda.
S: 250-PIPELINING
S: 250-8BITMIME
S: 250-SIZE 16000000
S: 250-STARTTLS
S: 250 AUTH LOGIN

C: AUTH LOGIN base64(api_user + '#' + label_id)

            
Tampilkan blok kode ini di jendela mengambang

Cuplikan kode python:

# tanpa label: s = SMTP('%s:%d' % (HOST, PORT)) s.set_debuglevel(DEBUG_MODE) if USE_SSL: s.starttls() s.login(API_USER, API_KEY) # dengan label: s = SMTP('%s:%d' % (HOST, PORT)) s.set_debuglevel(DEBUG_MODE) if USE_SSL: s.starttls() s.login(API_USER + '#' + label_id, API_KEY)
              
              # tanpa label:
s = SMTP('%s:%d' % (HOST, PORT))
s.set_debuglevel(DEBUG_MODE)
if USE_SSL:
    s.starttls()
s.login(API_USER, API_KEY)

# dengan label:
s = SMTP('%s:%d' % (HOST, PORT))
s.set_debuglevel(DEBUG_MODE)
if USE_SSL:
    s.starttls()
s.login(API_USER + '#' + label_id, API_KEY)

            
Tampilkan blok kode ini di jendela mengambang

Mengirim Gambar Tertanam melalui SMTP

Contoh kode:

from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage import smtplib class MyEmail: def __init__(self): self.smtp = smtplib.SMTP() self.login_username = 'postmaster@testdomain' self.login_password = '*****' self.sender = 'postmaster@testdomain' # sama dengan login_username self.receiver = 'test123@qq.com' self.host = 'smtp.engagelab.net' self.port = 25 def connect(self): self.smtp.connect(self.host) def login(self): self.smtp.login(self.login_username, self.login_password) def send(self): msg = MIMEMultipart('related') msg['From'] = self.sender msg['To'] = self.receiver email_title = 'uji coba python gambar inline' msg['Subject'] = email_title content = MIMEText('konten gambar uji coba <img src="cid:image1" alt="gambar uji coba">', 'html', 'utf-8') msg.attach(content) fp = open('./test.png','rb') img = MIMEImage(fp.read()) img.add_header('Content-ID','image1') #nilai content-id adalah cid di html msg.attach(img) self.smtp.sendmail(self.sender, self.receiver, msg.as_string()) def quit(self): self.smtp.quit() def send(): myemail = MyEmail() myemail.connect() myemail.login() myemail.send() myemail.quit() if __name__ == "__main__": send()
              
              from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import smtplib

class MyEmail:
    def __init__(self):
        self.smtp = smtplib.SMTP()
        self.login_username = 'postmaster@testdomain'
        self.login_password = '*****'
        self.sender = 'postmaster@testdomain'    # sama dengan login_username
        self.receiver = 'test123@qq.com'
        self.host = 'smtp.engagelab.net'
        self.port = 25

    def connect(self):
        self.smtp.connect(self.host)

    def login(self):
        self.smtp.login(self.login_username, self.login_password)

    def send(self):
        msg = MIMEMultipart('related')
        msg['From'] = self.sender
        msg['To'] = self.receiver
        email_title = 'uji coba python gambar inline'
        msg['Subject'] = email_title
        content = MIMEText('konten gambar uji coba <img src="cid:image1" alt="gambar uji coba">', 'html', 'utf-8')
        msg.attach(content)

        fp = open('./test.png','rb')
        img = MIMEImage(fp.read())
        img.add_header('Content-ID','image1') #nilai content-id adalah cid di html
        msg.attach(img)

        self.smtp.sendmail(self.sender, self.receiver, msg.as_string())

    def quit(self):
        self.smtp.quit()

def send():
    myemail = MyEmail()
    myemail.connect()
    myemail.login()
    myemail.send()
    myemail.quit()

if __name__ == "__main__":
    send()

            
Tampilkan blok kode ini di jendela mengambang

Permintaan Protokol SMTP untuk Pengiriman Email Terenkripsi

Karena SSL V3.0 kini sudah tidak aman, pengguna dapat mengakses protokol enkripsi melalui SMTP yang mendukung tls-v1.0-v1.2 (tidak mendukung SSL 3.0 atau versi sebelumnya). Port 25 mendukung enkripsi starttls. Pengguna perlu menambahkan kode enkripsi pada kode, misalnya pada bahasa Java: props.setProperty("mail.smtp.starttls.enable", "true");

icon
Hubungi Sales