Cách gửi tin nhắn email tự động bằng Python

Cách gửi tin nhắn email tự động bằng Python

Mặc dù các ứng dụng email thương mại cung cấp sự tiện lợi của GUI thân thiện với người dùng, chúng thường thiếu tính linh hoạt và khả năng tùy chỉnh mà nhiều nhà phát triển hoặc người tạo nội dung mong muốn cho nhu cầu gửi email của họ.





Có thể là để gửi email cảm ơn đến người đăng ký mới trên kênh truyền thông xã hội của bạn hoặc thêm chức năng email vào dự án mới nhất của bạn, khả năng gửi tin nhắn tự động bằng SMTP trong Python là một thứ chắc chắn có ích.





Đọc tiếp để tìm hiểu cách bạn có thể tải tập lệnh Python để gửi email chạy trên máy của bạn ngay hôm nay.





SMTP là gì?

Nói một cách đơn giản, SMTP, hay Giao thức truyền thư đơn giản, là một giao thức giao tiếp dành cho các máy chủ thư để truyền email qua internet.

Nó là một phần không thể thiếu của lớp ứng dụng của bộ TCP / IP, là một tập hợp các giao thức được sử dụng để giao tiếp qua internet hoặc các mạng tương tự khác. Trong mạng mà SMTP được triển khai, một quá trình được gọi là lưu trữ và chuyển tiếp giúp di chuyển thư qua các mạng.



Tại mỗi điểm cuối, phần mềm được gọi là Tác nhân chuyển thư (MTA) sử dụng lưu trữ và chuyển tiếp để tạo điều kiện giao tiếp giữa các máy chủ SMTP tham gia. Do đó, vai trò chính của SMTP chỉ đơn giản là chỉ định vị trí và cách thức mà thư di chuyển từ điểm này sang điểm khác trong mạng.

Bắt đầu

Bạn cần có tài khoản email để sử dụng để gửi email bằng chương trình này. Điều này là do chúng tôi sẽ sử dụng dịch vụ SMTP của ứng dụng email để gửi email. Đối với hướng dẫn này, chúng tôi sẽ sử dụng Gmail.





Bạn cũng có thể sử dụng máy chủ gỡ lỗi SMTP cục bộ để gửi email thử nghiệm, nhưng hiện tại chúng tôi sẽ sử dụng tài khoản email để gửi email vì tài khoản này trực quan hơn.

Có thể chỉ cần sử dụng một tài khoản Gmail hiện có, nhưng khi bạn sử dụng chương trình của mình, nó có thể sớm bị lấp đầy bởi các email thử nghiệm. Đây là lý do tại sao chúng tôi khuyên bạn nên tạo một tài khoản 'bỏ túi' cho mục đích thử nghiệm.





Bây giờ, hãy bật tùy chọn để cho phép các ứng dụng kém an toàn hơn để truy cập tài khoản Gmail của bạn. Đây là một lý do khác để sử dụng email bỏ đi vì bạn không nên sử dụng cài đặt bảo mật trong email chính của mình.

Viết email bằng Python

Python 3 được cài đặt sẵn một mô-đun gọi là smtplib (viết tắt của thư viện smtp), có thể được sử dụng để làm việc với các máy chủ SMTP.

Giống như bất kỳ mô-đun Python nào khác, điều đầu tiên bạn phải làm là nhập smtplib.

import smtplib

Khởi tạo một đối tượng SMTP

Bây giờ, bạn có thể sử dụng smtplib để tạo một đối tượng SMTP, đối tượng này sẽ cung cấp cho bạn hầu hết các chức năng của một ứng dụng email thông thường. Tuy nhiên, các chức năng của đối tượng SMTP chỉ có thể được sử dụng thông qua các phương thức phiên bản. Vì vậy, theo lẽ tự nhiên, bước tiếp theo là khai báo một thể hiện đối tượng.

mySMTP = smtplib.SMTP('smtp.google.com')

Điều này định cấu hình đối tượng SMTP để gửi email bằng máy chủ SMTP của Google.

Sau đó, chúng tôi chỉ định email người gửi và người nhận. Đây là nơi hữu ích cho tài khoản Gmail bạn đã tạo trước đó.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Một điều cần lưu ý ở đây là danh sách người nhận thực sự là một mảng, có nghĩa là nó được thiết kế để lưu trữ các giá trị phi nguyên tử. Do đó, bạn thậm chí có thể chỉ định toàn bộ danh sách gửi thư trong trường này!

Viết tin nhắn

Có thể cho rằng phần đơn giản nhất của quy trình, ở đây bạn phải nhập các giá trị mà bạn thường thêm khi soạn email mới. Điêu nay bao gôm:

  • Thông tin chi tiết của người gửi
  • Thông tin chi tiết của người nhận
  • Chủ thể
  • Nội dung thư

Các trường này được đặt cùng nhau bên trong dấu ngoặc kép ba và được phân ranh giới như sau:

chuyển ứng dụng sang thẻ sd android
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Gửi email

Cuối cùng, chúng ta có thể sử dụng lệnh sendmail để gửi thư từ máy chủ SMTP của bạn đến máy chủ của người nhận.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Bây giờ, chỉ còn một bước cuối cùng: tổ chức lại mã để ngăn chặn bất kỳ sự cố chương trình có thể thấy trước.

Khắc phục sự cố Chương trình Email Python của bạn

Đôi khi, máy chủ SMTP của bạn có thể không thiết lập kết nối với máy chủ của người nhận hoặc có thể xảy ra sự cố khi gửi email từ cổng SMTP này sang cổng SMTP khác. Trong trường hợp như vậy, chương trình của bạn có thể bị lỗi bất ngờ.

Để giải thích các khả năng như vậy, bạn có thể sử dụng thử ngoại trừ chặn và đặt các câu lệnh dễ xảy ra lỗi bên trong cố gắng khối. Toàn bộ chương trình của bạn, cùng với khối thử ngoại trừ, sẽ trông giống như sau:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

Bảo mật email của bạn

Nếu bạn định sử dụng Python trong cài đặt thế giới thực để gửi email, điều quan trọng là đảm bảo rằng giao tiếp được bảo mật ở cả hai đầu.

Sử dụng máy chủ SMTP đơn giản với cổng mặc định không cung cấp bất kỳ lớp mã hóa nào cho giao tiếp. Điều này có nghĩa là nếu bất kỳ bên thứ ba nào đang nghe ngóng trên mạng của bạn, họ có thể truy cập thông tin đăng nhập và thông tin có trong email của bạn.

Một cách để giải quyết vấn đề này là sử dụng giao thức TLS (Bảo mật lớp truyền tải) để mã hóa giao tiếp của bạn. Đây là cùng một giao thức được sử dụng bởi các ứng dụng email lớn như Gmail và Outlook để đảm bảo rằng email của bạn không bao giờ rơi vào tay kẻ xấu.

Để làm như vậy, chúng ta cần thực hiện một vài thay đổi nhỏ đối với chương trình mà chúng ta đã tạo trước đó.

Bước đầu tiên, tất nhiên, là nhập ssl thư viện cùng với smtplib . Các ssl thư viện cung cấp cho bạn khả năng tạo ngữ cảnh SSL an toàn và giao tiếp qua mạng được mã hóa bằng cách kết nối với các cổng cụ thể ở cả hai đầu.

Bối cảnh SSL an toàn không gì khác ngoài tập hợp các mật mã, phiên bản giao thức, chứng chỉ đáng tin cậy, tùy chọn TLS và phần mở rộng TLS.

Sau đó, chúng tôi có thể chỉ định cổng TLS và thêm một số ssl thư viện chức năng để tạo một emailer an toàn.

Mã, với tất cả các thay đổi được thực hiện, trông giống như sau:

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

Như trước đây, bạn nên tạo và sử dụng cá thể SMTP trong một khối thử ngoại trừ để ngăn chặn bất kỳ sự cố chương trình đột ngột nào.

ứng dụng khách ftp miễn phí tốt nhất cho windows

Bạn có thể làm gì với tập lệnh Python này

Bây giờ bạn đã có được kỹ năng tuyệt vời và hữu ích đáng ngạc nhiên trong việc tự động hóa email bằng mã, bạn có thể áp dụng nó cho bất kỳ nền tảng nào yêu cầu gửi email đến một danh sách gửi thư đa dạng.

Từ việc sử dụng nó trên trang web cá nhân của bạn để gửi email xác nhận tự động đến sử dụng nó để gửi thiệp Giáng sinh hoặc lời mời qua email cho gia đình và bạn bè của bạn, việc sử dụng tập lệnh Python nhỏ này chỉ bị giới hạn bởi sự sáng tạo của riêng bạn.

Ngoài ra, đây chỉ là một trong nhiều điều tuyệt vời mà bạn có thể làm với Python. Với sự hỗ trợ nhà phát triển phổ biến và cú pháp dễ học, việc học một kỹ năng Python chưa bao giờ dễ dàng hơn thế.

Để tiếp tục xây dựng những điều thú vị với mã, hãy xem hướng dẫn của chúng tôi về cách xây dựng bot Telegram của riêng bạn với Python 3 !

Đăng lại Đăng lại tiếng riu ríu E-mail Cách nâng cấp kỹ năng Python và AI của bạn với Keras, Pytorch, Tensorflow, v.v.

Nâng cấp kỹ năng lập trình và phát triển web của bạn trên Python, Trí tuệ nhân tạo, Keras, PyTorch, v.v.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Gmail
  • Mẹo về Email
  • Python
  • Tự động hóa tác vụ
Giới thiệu về tác giả Yash Chellani(10 bài báo đã xuất bản)

Yash là một sinh viên khoa học máy tính đầy tham vọng, thích xây dựng mọi thứ và viết về mọi thứ công nghệ. Khi rảnh rỗi, anh ấy thích chơi Squash, đọc bản sao của Murakami mới nhất và săn rồng trong Skyrim.

Xem thêm từ Yash Chellani

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký