Python gửi email mà không cần máy chủ smtp

Trước khi bắt đầu, bạn cần thay đổi một số cài đặt trong tài khoản Gmail của mình. Trước hết, bạn muốn thay đổi cài đặt bảo mật để cho phép mã python của bạn gửi tin nhắn, vì vậy việc tạo một tài khoản email thử nghiệm là phù hợp hơn và rất được khuyến khích. Sau đó, bạn có thể muốn tạo Mật khẩu ứng dụng cho tài khoản Gmail của mình. Chỉ cần truy cập tài khoản google của bạn > Bảo mật > Mật khẩu ứng dụng

Các bước liên quan

  1. Thiết lập máy chủ SMTP [Giao thức truyền thư an toàn] bằng python
  2. Đăng nhập vào tài khoản Gmail của bạn bằng email và mật khẩu của bạn
  3. Chỉ định các tiêu đề như Từ, Đến và Chủ đề bằng đối tượng thông báo MIMEMultipart
  4. thêm tin nhắn
  5. Gửi tin nhắn bằng máy chủ SMTP

Thiết lập máy chủ SMTP

Sử dụng gói smtplib   trong python, bạn có thể chỉ cần thiết lập một máy chủ SMTP với số cổng. smtplib là gói tích hợp trong python để gửi email cơ bản mà không có bất kỳ chủ đề nào, để gửi email hoàn chỉnh, chúng tôi yêu cầu gói email trong python.


import smtplib


# setting the SMTP server with port number

= smtplib.SMTP['smtp.gmail.com',587]


# Starting the server

s.starttls[]


# Logging to the Gmail account

s.login[my_email, password]


Đăng nhập bằng email của bạn và mật khẩu Ứng dụng đã tạo

Gửi email bằng python

Gửi một email cơ bản đến một tài khoản cụ thể chỉ là một nhiệm vụ dễ dàng


import smtplib


# setting the SMTP server with port number

= smtplib.SMTP['smtp.gmail.com',587]


# Starting the server

s.starttls[]


# Logging to the Gmail account

s.login[my_email, password]


message = "Your message"

  

# sending the mail 

s.sendmail["Your email", "receiver email", message]

  

# quit the session

s.quit[]


Điều này sẽ gửi tin nhắn được chỉ định đến email người nhận

Gửi thư có Từ, Đến và Chủ đề

Bây giờ bạn đã biết cách gửi một email cơ bản bằng python, nhưng để gửi một email hoàn chỉnh, bạn cần thêm Địa chỉ người nhận, Địa chỉ người nhận và Chủ đề. Để đạt được điều này, chúng tôi yêu cầu gói email tích hợp trong python. Lưu ý rằng chỉ riêng gói email sẽ không giúp bạn gửi email, bạn cũng cần có smtplib


import smtplib


# setting the SMTP server with port number

= smtplib.SMTP['smtp.gmail.com',587]


# Starting the server

s.starttls[]


# Logging to the Gmail account

s.login[my_email, password]


# Create a message object

msg = MIMEMultipart[]


# Setting the parameters for the message

msg['From'] = my_email

msg['To'] = "receiver_email"

msg['Subject'] = "Email using python"


# Persons name

name = "Sidharth"


# Compose the message body

msg.attach[MIMEText["Hello {}, How are you doing?".format[name], 'plain']]


# Send message using SMTP server 

s.send_message[msg]

print["Message sent successfully"]


Ở đây, chúng tôi đã tạo một đối tượng thông báo bằng cách sử dụng MIMEMultipart[] và chỉ định các tham số. Sau đó, chúng tôi soạn nội dung thư bằng phương thức MIMEText[]. Sau đó, chúng tôi gửi tin nhắn dưới dạng thư bằng máy chủ SMTP mà chúng tôi đã tạo trước đó. Lưu ý rằng tin nhắn chúng tôi đang gửi ở dạng văn bản thuần túy


đầu ra


Gửi Email có nội dung HTML

Bất cứ khi nào bạn nhận được email từ các công ty hoặc trang web, bạn sẽ thấy một số nội dung HTML như logo công ty, kiểu phông chữ, liên kết trang web của họ, v.v., gửi email có nội dung HTML có ý nghĩa vì email văn bản thuần túy không đủ để gửi email có chất lượng tốt. Nhưng điều thú vị là bạn thực sự có thể gửi bất kỳ nội dung HTML nào dưới dạng email bằng python, Hãy xem cách thực hiện điều này

 

name = "Sidharth"


# Creating HTML content

html = """

    

        

Hi,

            

            Subscribe to PyCodeMates for quality contents related to python, machine learning, data science, etc

            

    

"""

# Compose the message body

msg.attach[MIMEText["Hello {}, How are you doing?".format[name], 'plain']]

msg.attach[MIMEText[html, 'html']]


# Send message using SMTP server 

s.send_message[msg]

print["Message sent successfully"]


Ở đây, chúng tôi chỉ thêm hai nội dung, phần nội dung HTML bao gồm chữ "Xin chào" được đặt trong thẻ h1, liên kết trang web và sau đó chúng tôi đính kèm nó vào đối tượng thông báo với tham số là 'html'. Đây chỉ là nội dung HTML cơ bản, các bạn có thể bổ sung thêm HTML cùng với CSS cho hấp dẫn hơn. Bằng cách chạy mã, chúng tôi sẽ nhận được một đầu ra như thế này


Gửi nhiều Email

Cho đến nay, chúng tôi đã học cách gửi email cho một người với nội dung đơn giản và HTML. Bây giờ chúng tôi đang xem cách gửi nhiều email được cá nhân hóa. Gửi email cho nhiều người dùng tiết kiệm thời gian rất nhiều so với gửi thủ công cho từng người. được rồi. Làm thế nào chúng ta có thể làm điều đó?


Đầu tiên, hãy tạo một từ điển với tên và email của những người bạn muốn gửi email đến


persons_list = {

    

    "person1":'person1@gmail.com',

    "person2":'person2@gmail.com',

    "person3":'person3@gmail.com',

    "person4":'person4@gmail.com'

                

    }


Hãy lặp lại từng tên và email này để chúng tôi có thể gửi nó cho từng người


for name, email in persons_list.items[]:

    msg = MIMEMultipart[]


    # Setting the parameters for the message

    msg['From'] = my_email

    msg['To'] = email

    msg['Subject'] = "Email using python"


    # Creating HTML content

    html = """

    

        

            

Hi,

                

                Subscribe to PyCodeMates for quality contents related to python, machine learning, data science, etc

                

        

    

    """

    # Compose the message body

    msg.attach[MIMEText["Hello {}, How are you doing?".format[name], 'plain']]

    msg.attach[MIMEText[html, 'html']]


    # Send message using SMTP server 

    s.send_message[msg]

    print["Message sent successfully"]


Mã này sẽ gửi email cho tất cả những người được chỉ định trong từ điển, có rất nhiều cách khác ngoài việc tạo từ điển, như tạo tệp văn bản cho tên và email, tạo khung dữ liệu gấu trúc để lưu tên và email, v.v. Nhưng để đơn giản, chúng ta có thể sử dụng cấu trúc dữ liệu từ điển trong python

Bạn có thể gửi email bằng Python không?

Python cung cấp ` thư viện để gửi email- “SMTP lib” . “smtplib” tạo đối tượng phiên máy khách Giao thức chuyển thư đơn giản được sử dụng để gửi email đến bất kỳ id email hợp lệ nào trên internet.

Máy chủ SMTP Python là gì?

Trăn. . Giao thức truyền thư đơn giản [SMTP] là giao thức xử lý việc gửi e-mail và định tuyến e-mail giữa các máy chủ thư . Python cung cấp mô-đun smtplib, mô-đun này xác định đối tượng phiên máy khách SMTP có thể được sử dụng để gửi thư đến bất kỳ máy Internet nào có trình nền trình nghe SMTP hoặc ESMTP.

Mô-đun Python nào được sử dụng để gửi email?

Bạn có thể sử dụng mô-đun smtplib tích hợp sẵn của Python để gửi email bằng SMTP [Giao thức truyền thư đơn giản], đây là giao thức cấp ứng dụng. Lưu ý rằng mô-đun sử dụng giao thức RFC 821 cho SMTP

Chủ Đề