ตัวอย่างที่1
#!/usr/bin/env python3 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText # me == อีเมล์ของผู้อ่าน # you == อีเมล์ของคนที่ต้องการส่งถึง me = "[email protected]" you = "[email protected]"
# Create message container - the correct MIME type is multipart/alternative. msg = MIMEMultipart('alternative') msg['Subject'] = "Link" msg['From'] = me msg['To'] = you # Create the body of the message (a plain-text and an HTML version). text = "สวัสดี!\n คุณสบายดีไหม?\n" html = """\ <html> <head></head> <body> <p>สวัสดีครับ!<br> คุณสบายดีไหม?<br> </p> </body> </html> """ # Record the MIME types of both parts - text/plain and text/html. part1 = MIMEText(text, 'plain') #ส่งแบบ text part2 = MIMEText(html, 'html') # ส่งแบบ html # Attach parts into message container. # According to RFC 2046, the last part of a multipart message, in this case # the HTML message, is best and preferred. msg.attach(part1) msg.attach(part2)
# ส่งโดยใช้ SMTP s = smtplib.('localhost') # sendmail function takes 3 arguments: sender's address, recipient's address # and message to send - here it is sent as one string. s.sendmail(me, you, msg.as_string()) s.quit()
---------------------------
ตัวอย่างที่ 2 ส่งอีเมลโดยผ่านผู้ให้บริการอีเมล์โพรโทคอล SMTP เช่น Gmail Yahoo! เป็นต้น
import smtplib import os
from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders mail_user = "[email protected]" mail_pwd = "รหัสผ่าน" def mail(to, subject, text, attach): msg = MIMEMultipart() msg['From'] = mail_user msg['To'] = to msg['Subject'] = subject
msg.attach(MIMEText(text)) part = MIMEBase('application', 'octet-stream') part.set_payload(open(attach, 'rb').read()) encoders.encode_base64(part) part.add_header('Content-Disposition','attachment; filename="%s"' % os.path.basename(attach)) msg.attach(part) mailServer = smtplib.SMTP("smtp.gmail.com", 587) #ผู้อ่านสามารถตั้งค่า SMTP ตามที่ผู้ให้อีเมล์กำหนดครับ mailServer.ehlo() mailServer.starttls() mailServer.ehlo() mailServer.login(mail_user, mail_pwd) mailServer.sendmail(mail_user, to, msg.as_string()) # Should be mailServer.quit(), but that crashes... mailServer.close() mail("ชื่ออีเมล์ที่ต้องการส่ง","ชื่อหัวข้อเมล์","ข้อความ","ไฟล์ที่ต้องการแนบไปด้วย ขนาดไฟล์ต้องไม่เกินกว่าที่ผู้ให้บริการกำหนดไว้")
การนำไปพัฒนาต่อ
ผู้อ่านสามารถลอองนำไปพัฒนาต่อ เช่น ส่งอีเมล์ตามรายชื่อในไฟล์ txt หรือนำไปประยุกต์ใช้เป็น GUI ครับขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)