วิธีส่งอีเมลโดยใช้ Python

บล็อก

วิธีส่งอีเมลโดยใช้ Python

เมื่ออ่านบทความนี้ คุณจะได้เรียนรู้ขั้นตอนพื้นฐานที่จำเป็นในการส่งอีเมลอย่างง่ายใน Python เราจะใช้โมดูลในตัวที่เรียกว่า |_+_| ซึ่งหมายความว่าจะไม่มีการตั้งค่าหรือการติดตั้งเพิ่มเติมที่จำเป็น ตามเอกสารอย่างเป็นทางการ โมดูลนี้:

มีสามส่วนในบทช่วยสอนนี้

react-native-wheel-picker
  1. เซิร์ฟเวอร์ขวด
  2. การดำเนินการ
  3. บทสรุป

ไปที่ส่วนถัดไปเพื่อตั้งค่าเซิร์ฟเวอร์ Flask

1. เซิร์ฟเวอร์ขวด

ขอแนะนำอย่างยิ่งให้ตั้งค่าสภาพแวดล้อมเสมือนก่อนดำเนินการต่อ เปิดใช้งานสภาพแวดล้อมเสมือนของคุณ และติดตั้ง Flask ผ่านรหัสต่อไปนี้:

smtplib

สร้างไฟล์ Python และเพิ่มโค้ดต่อไปนี้เพื่อสร้างเซิร์ฟเวอร์อย่างง่าย ฉันจะตั้งชื่อมันว่า |_+_|

pip install flask

บันทึกไฟล์และเรียกใช้ด้วยรหัสต่อไปนี้ เปลี่ยนชื่อไฟล์ตามนั้น ฉันกำลังใช้ |_+_| สำหรับบทช่วยสอนนี้

test.py

เปิดเบราว์เซอร์และเข้าถึงโดยอิงตาม IP ของเครื่องของคุณ คุณสามารถเปิดบรรทัดคำสั่งและพิมพ์ |_+_| เพื่อระบุที่อยู่ของเครื่องของคุณ คุณควรจะเห็นผลลัพธ์ต่อไปนี้

นี่คือชื่อภาพ

ไปยังส่วนถัดไป และเริ่มเล่นกับ |_+_| โมดูล.

2. การดำเนินการ

วัตถุ SMTP

ก่อนอื่นให้เพิ่มการประกาศการนำเข้าต่อไปนี้ที่ด้านบนของไฟล์ Python

ชงติดตั้งไคลเอนต์ mongodb
from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello world!' if __name__ == '__main__': app.run('0.0.0.0',port=5000)

|_+_| จำเป็นต้องใช้โมดูลเพื่อสร้างข้อความอีเมล เป็นส่วนหนึ่งของโมดูลเดิมที่ยังค่อนข้างมีประโยชน์ อย่าลังเลที่จะใช้โมดูลอื่น ๆ หากคุณต้องการสร้างข้อความอีเมลที่ซับซ้อน

ออบเจ็กต์ SMTP ยอมรับพารามิเตอร์อินพุตสองตัว:

  • ชื่อเซิร์ฟเวอร์
  • ท่า

โปรดทราบว่าฉันกำลังใช้ Outlook เป็นเซิร์ฟเวอร์ SMTP และการเชื่อมต่อนั้นใช้ TLS ที่จริงแล้ว คุณสามารถใช้เซิร์ฟเวอร์ SMTP ของคุณเองหรือบริการของบุคคลที่สาม เช่น Gmail หรือ Outlook คุณต้องแก้ไขพารามิเตอร์ตามการตั้งค่าของเซิร์ฟเวอร์ SMTP ที่คุณจะใช้ คุณต้องอนุญาตให้บริการของบุคคลที่สามเข้าถึงอีเมลของคุณได้ การตั้งค่าสำหรับ Outlook มีดังนี้ แก้ไขตามนั้นหากคุณใช้เซิร์ฟเวอร์ SMTP อื่น

นี่คือชื่อภาพ

สร้าง |_+_| วัตถุด้วยรหัสต่อไปนี้ แทนที่ |_+_| ด้วยชื่อเซิร์ฟเวอร์ของเซิร์ฟเวอร์ SMTP ของคุณ

test.py

ดำเนินการต่อโดยต่อท้ายรหัสต่อไปนี้เพื่อเริ่มการตรวจสอบสิทธิ์:

python test.py

MIME

ขั้นตอนต่อไปคือการสร้างข้อความอีเมล มาสร้างฟังก์ชันที่ชื่อว่า |_+_| . กัน และกำหนดอีเมลผู้ส่งและผู้รับ คุณสามารถใช้อีเมลของคุณเองเป็นทั้งผู้ส่งและผู้รับเพื่อทดสอบได้ ฉันได้เพิ่มอินพุตสตริงเพิ่มเติมชื่อ |_+_| มันจะเป็นเนื้อหาหลักที่เราจะส่งไปในอีเมล

ipconfig

ภายในฟังก์ชันสร้าง |_+_| วัตถุที่จะรับผิดชอบการจัดเก็บทั้งหมด |_+_| และ |_+_| วัตถุ

smtplib

ต่อไป สร้าง |_+_| วัตถุโดยใช้พารามิเตอร์อินพุตที่เรากำหนดไว้ก่อนหน้านี้ เราจะจัดรูปแบบภายในสตริง HTML แนบไปกับ |_+_| วัตถุ.

python setup py clean
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage

ขั้นตอนสุดท้ายคือการเรียก |_+_| การทำงาน. ขอแนะนำให้ห่อด้วย |_+_| จับบล็อก

email.mime

ในการทดสอบ คุณต้องโทรไปที่ |_+_| การทำงาน. วิธีที่ง่ายที่สุดคือทำในฟังก์ชันหลัก รู้สึกอิสระที่จะเปลี่ยนข้อความที่ป้อน

SMTP

เรียกใช้เซิร์ฟเวอร์ และคุณควรเห็นอีเมลต่อไปนี้ภายในกล่องจดหมายของคุณ

นี่คือชื่อภาพ

ไฟล์แนบข้อความ

คุณสามารถเพิ่มไฟล์แนบ เช่น ไฟล์ CSV หรือ TXT ลงในข้อความอีเมลได้อย่างง่ายดายโดยใช้รหัสต่อไปนี้ เพียงกำหนดเส้นทางที่ถูกต้องและเปิดภายใน |_+_|

smtp.office365.com

คุณควรจะได้รับผลลัพธ์ต่อไปนี้

วิธีอัพโหลดไฟล์บน github

นี่คือชื่อภาพ

ไฟล์แนบรูปภาพ

สำหรับการแนบรูปภาพ คุณต้องใช้ |_+_| วัตถุแทน คุณสามารถเปลี่ยนชื่อของไฟล์แนบได้โดยเพิ่มส่วนหัว |_+_| กับมัน

ด้วย open('example.jpg'>

อย่าลังเลที่จะตรวจสอบรหัสที่สมบูรณ์ในต่อไปนี้ ลิงค์ .

จากการนำเข้าขวด ขวดคำขอ jsonify การนำเข้า smtplib จากการนำเข้า email.mime.multipart MIMEMultipart จากการนำเข้า email.mime.text MIMEText จาก email.mime.image การนำเข้า MIMEImage smtpObj = smtplib.SMTP('smtp.office365.com', 587) smtpObj.ehlo () smtpObj.starttls () smtpObj.login ('sender@email.com', 'รหัสผ่าน') แอป = Flask (__name__) def send_test_mail (เนื้อหา): sender_email = 'sender@email.com' receiver_email = ' ผู้รับ@email.com' msg = MIMEMultipart() msg['Subject'] = '[Email Test]' msg['From'] = sender_email msg['To'] = receiver_email msgText = MIMEText(' %NS ' % (เนื้อหา), 'html') msg.attach(msgText) ชื่อไฟล์ = 'example.txt' msg.attach(MIMEText(open(filename).read())) with open('example.jpg'>