Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ส่งอีเมลจากบัญชี Gmail ของคุณโดยใช้ Python


ในบทความนี้ เราจะมาดูกันว่าเราสามารถส่งอีเมลพร้อมไฟล์แนบโดยใช้ Python ได้อย่างไร ในการส่งจดหมาย เราไม่จำเป็นต้องมีห้องสมุดภายนอก มีโมดูลที่เรียกว่า SMTPlib ซึ่งมาพร้อมกับ Python ใช้ SMTP (Simple Mail Transfer Protocol) เพื่อส่งจดหมาย มันสร้างวัตถุเซสชันไคลเอนต์ SMTP สำหรับการส่งจดหมาย

SMTP ต้องการรหัสอีเมลต้นทางและปลายทางที่ถูกต้อง และหมายเลขพอร์ต หมายเลขพอร์ตแตกต่างกันไปตามไซต์ต่างๆ ตัวอย่างเช่น สำหรับ google พอร์ตคือ 587 .

ขั้นแรกเราต้องนำเข้าโมดูลเพื่อส่งจดหมาย

import smtplib

นอกจากนี้ เรายังใช้โมดูล MIME (Multipurpose Internet Mail Extension) เพื่อให้มีความยืดหยุ่นมากขึ้น การใช้ส่วนหัว MIME ทำให้เราจัดเก็บข้อมูลผู้ส่งและผู้รับ ตลอดจนรายละเอียดอื่นๆ ได้

เรากำลังใช้บริการ Gmail ของ Google เพื่อส่งอีเมล ดังนั้นเราจึงต้องการการตั้งค่าบางอย่าง (ถ้าจำเป็น) เพื่อความปลอดภัยของ Google หากไม่ได้ตั้งค่าเหล่านั้น รหัสต่อไปนี้อาจไม่ทำงาน หาก Google ไม่รองรับการเข้าถึงจากแอปของบุคคลที่สาม

เพื่อให้เข้าถึงได้ เราต้องตั้งค่า "การเข้าถึงแอปที่ปลอดภัยน้อยกว่า" ในบัญชี Google หากเปิดการยืนยันสองขั้นตอน เราจะใช้การเข้าถึงที่มีความปลอดภัยน้อยกว่าไม่ได้

ในการตั้งค่านี้ให้เสร็จสิ้น ให้ไปที่คอนโซลผู้ดูแลระบบของ Google และค้นหาการตั้งค่าแอปที่มีความปลอดภัยน้อย

ส่งอีเมลจากบัญชี Gmail ของคุณโดยใช้ Python

ขั้นตอนในการส่งเมลพร้อมไฟล์แนบโดยใช้ SMTP (smtplib)

  • สร้าง MIME
  • เพิ่มผู้ส่ง ที่อยู่ผู้รับลงใน MIME
  • เพิ่มชื่อเมลลงใน MIME
  • แนบร่างกับ MIME
  • เริ่มเซสชัน SMTP ด้วยหมายเลขพอร์ตที่ถูกต้องพร้อมคุณสมบัติความปลอดภัยที่เหมาะสม
  • เข้าสู่ระบบ
  • ส่งจดหมายและออก

โค้ดตัวอย่าง

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
mail_content = '''Hello,
This is a simple mail. There is only text, no attachments are there The mail is sent using Python SMTP library.
Thank You
' ' '
#The mail addresses and password
sender_address = 'sender123@gmail.com'
sender_pass = 'xxxxxxxx'
receiver_address = 'receiver567@gmail.com'
#Setup the MIME
message = MIMEMultipart()
message['From'] = sender_address
message['To'] = receiver_address
message['Subject'] = 'A test mail sent by Python. It has an attachment.'   #The subject line
#The body and the attachments for the mail
message.attach(MIMEText(mail_content, 'plain'))
#Create SMTP session for sending the mail
session = smtplib.SMTP('smtp.gmail.com', 587) #use gmail with port
session.starttls() #enable security
session.login(sender_address, sender_pass) #login with mail_id and password
text = message.as_string()
session.sendmail(sender_address, receiver_address, text)
session.quit()
print('Mail Sent')

ผลลัพธ์

D:\Python TP\Python 450\linux>python 327.Send_Mail.py
Mail Sent

ส่งอีเมลจากบัญชี Gmail ของคุณโดยใช้ Python