ให้เรตสมาชิก: 5 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งาน
 

       การส่ง E-Mail  ด้วย Python ผ่าน SMTP ของ Mailgun คือ การเขียนโปรเเกรมส่ง E-Mail ด้วยภาษา Python เพื่อส่งอีเมลล์ผ่าน Protocol แบบ TCP/IP ที่ใช้ในการส่ง E - mail ในเครือข่ายอินเทอร์เน็ต ไปยังเครื่องบริการอื่น ๆ ซี่งสามารถส่งเมล์ไปยังผู้ใช้ได้ทั่วโลก มีข้อจำกัดในเรื่องของความสามารถในการส่ง e-mail ว่ามันสามารถทำได้แบบเป็นคิวเท่านั้น และ SMTP ส่วนใหญ่จะไม่ยอมให้คนนอกองค์กร หรือ IP ที่อยู่นอกองค์กรการใช้งาน SMTP โดยในที่นี้ จะใช้ SMTP ของ Mailgun ที่เป็นผู้ให้บริการ ซึ่งมีข้อดีในเรื่อง มาตรฐาน ทำให้เมลล์ที่ถูกส่งไป ไม่ถูกมองว่าเป็น Junk mail แล้วไปอยู่ในกล่องเมลล์ขยะ ของผู้ใช้เมลล์แต่ละคน

ัภาพที่ใช้แสดงขั้นตอนการทำงานของ SMTP ที่ใช้ในการเชื่อมต่อเซิร์ฟเวอร์ของอีเมลล์

รูปที่1 SMTP Sending Email

 

       Simple Mail Transfer Protocol (SMTP) ใช้เป็นโปรโตคอลในการจัดการการโอนอีเมลโดยใช้ Python ใช้เพื่อกำหนดเส้นทางอีเมลระหว่างเซิร์ฟเวอร์อีเมล เป็นโปรโตคอลชั้นแอปพลิเคชันที่อนุญาตให้ผู้ใช้ส่งจดหมายไปยังอีก อีเมลผู้รับดึงข้อมูลโดยใช้โปรโตคอลPOP (Post Office Protocol)และIMAP (Internet Message Access Protocol)

 

ขั้นตอนการส่ง E - mail ด้วย Python ผ่าน SMTP ของ mailgun

1. ต้องเป็นสมาชิกของ Mailgun ก่อน โดยสามารถเข้าไปสมัครได้ที่ https://www.mailgun.com/

2. ตั้งค่า SMTP ของ Mailgun

3. Module ที่ต้องเตรียมสำหรับการเขียน script python คือ module email และ module smtplib

การติดตั้งโมดูล เราจำเป็นต้องมี pip ก่อน เนื่องจาก pip คือตัวติดตั้ง packages เสริมใน python หากยังไม่ได้ติดตั้ง สามารถทำตามขั้นตอนดังนี้

- การติดตั้ง pip สำหรับ window

ให้ download file จาก https://bootstrap.pypa.io/get-pip.py จากนั้นเข้าโฟล์เดอร์ download เเล้วเปิด command ใช้คำสั่งนี้

python get-pip.py

- การติดตั้ง pip สำหรับ mac 

sudo python get-pip.py

- การติดตั้ง pip สำหรับ Linux

sudo apt-get install python3-pip

เมื่อทำการติดตตั้ง pip เรียบร้อยเเล้ว ก็สามารถติดตั้ง module ที่ต้องใช้ได้เเล้ว  ซึ่งการติดตั้งโมดูลใน python จะใช้คำสั่ง pip install ตามด้วยชื่อของโมดูลที่ต้องการติดตั้ง อย่างเช่น การติดตั้งโมดูล email จะใช้คำสั่ง 

pip install email

4 เริ่มเขียนโปรเเกรมการส่งเมลล์ผ่าน 

4.1 ขั้นแรกเราต้องนำเข้าโมดูลที่เกี่ยวข้องในการรันของตัวโปรแกรมที่จะเขียน  Python มีโมดูล smtplib ซึ่งกำหนดอ็อบเจ็กต์เซสชันไคลเอ็นต์ SMTP ที่ใช้ในการส่งอีเมลไปยังเครื่องอินเทอร์เน็ต เพื่อให้สามารถใช้งานได้ จำเป็นต้องนำเข้าโมดูล smtplib โดยใช้คำสั่ง import แล้วตามด้วยชื่อโมดูล

4.2 กำหนดตัวแปร use, password ตามบัญชีผู้ใช้ที่ได้สมัครไว้

4.3 กำหนดตัวแปรผู้ส่ง(email ผู้ส่ง) , ผู้รับ(email ผู้รับ)

4.4 กำหนดตัวแปรเก็บข้อมูลของเนื้อหาที่ต้องการส่งไปใน email

4.5 ตั้งค่า server เพื่อส่งข้อมูล

 นี่เป็น code สำหรับ การส่งเมลล์ผ่าน SMTP ด้วย Python 

import email #เรียกใช้งาน mudule email
import smtplib #เรียกใช้งาน module smtplib 
# กำหนดตัวแปรชื่อผู้ใช้ และ รหัสผ่าน ตามบัญชีผู้ใช้
username = 'username'
password = 'password'
# กำหนดตัวแปรอีเมลผู้ส่ง และ ผู้รับ
sender = 'sender@gmail.com'
recipient = 'recipt@gmail.com'

# เนื้อหาของอีเมล
body = """
การส่งเมลล์ผ่าน SMTP ของ Mailgun ด้วย Python
"""

mail = body

# ตั้งค่าเซิร์ฟเวอร์ด้วยชื่อโฮส และ พอร์ท
server = smtplib.SMTP(smtplib.SMTP('mail.your-domain.com', 25)) 
#syntax ของ smtplib.SMTP( [host [, port [, local_hostname]]] )
server.login(username, password)
server.sendmail(sender, recipient, mail.encode('utf-8'))
server.quit()

       สามารถ copy code เเล้วไปปรับแต่งแก้ไขได้ตามที่เราต้องการ ซึ่งเมื่อทำการรันโค้ดแล้ว จะมีข้อความเนื้อหาที่ได้เขียนไว้ ถูกไปยัง email  ที่เราตั้งเป็น recipient(ผู้รับ) โดยจะแสดง email ที่ใช้ในการส่ง(sender) และ ส่วนของเนื้อหาที่ได้เขียนไว้ ดังรูปตัวอย่างข้างล่างนี้

ผลลัพธ์จากการรันของ Program การส่งอีเมลล์ผ่าน SMTP ของ Mailgun โดยใช้Python ในหารเขียน Script

 รูปที่2 ผลลัพธ์หลังทำการันโปรแกรม

      หลังจากการที่ได้รู้จักการส่งเมลล์ผ่าน SMTP ของ mailgun ด้วย Python  จะเห็นได้ว่าวิธีการเขียนง่ายมาก แค่มี บัญชีผู้ใช้งาน , Host และ port สำหรับใช้งาน Server SMTP ของ Mailgun ก็สามารถเขียน Scrip Python เพื่อส่งเมลล์ได้เเล้ว นอกจากนี้ยังสามารถนำไปประยุกต์ใช้กับ Class หรือ ฟังก์ชันต่างๆเพื่อให้ได้ผลลัพธ์ตามที่ต้องการได้อีกด้วย  

       นอกจากสามารถใช้ Python ในการส่งเมลได้แล้ว MailGun ยังสามารถใช้งานร่วมกับภาษาอื่นๆ ได้เกือบทุกภาษา หรือ ใช้งานผ่าน cURL ก็ได้เช่นเดียวกัน ทำความรู้จัก MailGun ให้มากยิ่งขึ้น เชิญทางนี้

 

อ้างอิง :

1. วิธีการสมัครและการใช้งาน MailGun (เมลกัน), [ออนไลน์] เข้าถึงได้ https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/266-mailgun/7125-how-to-apply-and-use-mailgun.html

2. เขียนโปรแกรมส่งอีเมลด้วยภาษา Python, [ออนไลน์] เข้าถึงได้ https://www.mindphp.com/forums/viewtopic.php?f=144&t=41465

3. Python - Sending Email using SMTP, [ออนไลน์] เข้าถึงได้ https://www.pitt.edu/~naraehan/python3/reading_writing_methods.html

4. Python ส่งอีเมลโดยใช้ SMTP , [ออนไลน์] เข้าถึงได้ https://www.javatpoint.com/python-sending-email

อ้างอิงรูปภาพ :

 1. SMTP Sending Email, [ออนไลน์] เข้าถึงได้ https://www.javatpoint.com/python-sending-email 

 

chakirin
, การส่ง E-mail ด้วย python ผ่าน smtp ของ mailgun - by MailGun,
5 1 1 5
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
สอบถามวิธี render file mp4 kdenlive หน่อยครับ
โดย chakirin.bfds จ 08 มี.ค. 2021 6:06 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
3
จ 08 มี.ค. 2021 6:06 pm โดย chakirin.bfds
ขอวิธีลบหรือรีเซ็ตค่าข้อมูลในตารางหน่อยครับ
โดย chakirin.bfds จ 08 มี.ค. 2021 3:51 pm บอร์ด SQL - Database
4
12
จ 08 มี.ค. 2021 6:54 pm โดย chakirin.bfds
Q - สอบถามทำให้ mouse over ที่ไอคอนรูปวงกลม แล้วให้แสดงรูปที่เป็นข้อความขึ้น
โดย eange08 ศ 05 มี.ค. 2021 4:52 pm บอร์ด Joomla Dev
1
5
ศ 05 มี.ค. 2021 5:47 pm โดย tsukasaz
กลุ่มประเทศผู้ส่งออกข้าว
โดย jataz2 ศ 05 มี.ค. 2021 11:07 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
22
ศ 05 มี.ค. 2021 11:07 am โดย jataz2
Q - พอมี module หรือ plugin ที่เป็นพวก social อย่าง line, ig บ้างไหมค่ะ
โดย eange08 พฤ 04 มี.ค. 2021 5:21 pm บอร์ด Joomla Dev
1
7
พฤ 04 มี.ค. 2021 5:26 pm โดย tsukasaz
reboot เครื่องไม่ได้ครับ
โดย chakirin.bfds พฤ 04 มี.ค. 2021 12:25 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
48
พฤ 04 มี.ค. 2021 3:14 pm โดย chakirin.bfds
แก้ css ส่วน padding ด้วย override แล้วไม่เปลี่ยนตาม
โดย eange08 พ 03 มี.ค. 2021 4:43 pm บอร์ด Joomla Development
1
33
พ 03 มี.ค. 2021 4:47 pm โดย tsukasaz
Joomla PDPA ใช้ EB Sticky Cookie Notice โมดูล แสดงแจ้งเตือนการเก็บข้อมูล Cookie ของผู้ใช้งาน
โดย tsukasaz พ 03 มี.ค. 2021 4:39 pm บอร์ด Joomla Extension Review
0
30
พ 03 มี.ค. 2021 4:39 pm โดย tsukasaz