Gửi email trong python 3

Email được gửi với 3 dòng mã cuối cùng. Và bạn không cần phải cài đặt bất kỳ gói bổ sung nào để nó hoạt động [tôi thích nó. ]. Đoạn mã trên đang sử dụng máy chủ Gmail SMTP [Giao thức truyền thư đơn giản]. Nếu bạn đang sử dụng nhà cung cấp email khác thì bạn cần thay đổi

pip install python-dotenv
0 thành địa chỉ nhà cung cấp của bạn và thay đổi số cổng [
pip install python-dotenv
1]. Bạn cần đặt các biến
pip install python-dotenv
2 và
pip install python-dotenv
3 thành của bạn. Đối với mật khẩu email, vui lòng tạo
pip install python-dotenv
4 cho Gmail của bạn. Đây là liên kết với các tài liệu về cách tạo
pip install python-dotenv
4 cho tài khoản Gmail. Bạn nên tạo một tài khoản Gmail mới chỉ để sử dụng trong các tập lệnh Python [một tài khoản dùng một lần]

Đoạn mã trên xây dựng đối tượng

pip install python-dotenv
6. Thật dễ dàng để thao tác. Để đặt chủ đề của email, chỉ cần thay đổi chuỗi được gán thành
pip install python-dotenv
7. Nội dung email được đặt với
pip install python-dotenv
8

Đoạn mã trên đơn giản và có thể được sử dụng cho các thử nghiệm nhanh. Nếu bạn định sử dụng nó trong dự án nghiêm túc, hãy thực hiện tái cấu trúc mã

Không giữ mật khẩu trong mã

Xin đừng giữ bí mật được mã hóa cứng. Vui lòng không đẩy chúng vào kho lưu trữ. Vui lòng giữ tất cả bí mật dưới dạng biến môi trường hoặc trong tệp

pip install python-dotenv
9. Có một gói fatnatstic
EMAIL_ADDRESS=my-gmail-address@gmail.com
EMAIL_PASSWORD=app-password-for-gmail
0 để tải các biến môi trường từ tệp
pip install python-dotenv
9. Vui lòng không đẩy tệp
pip install python-dotenv
9 vào kho lưu trữ. Vui lòng thêm
pip install python-dotenv
9 vào
EMAIL_ADDRESS=my-gmail-address@gmail.com
EMAIL_PASSWORD=app-password-for-gmail
4

Bạn có thể dễ dàng cài đặt

EMAIL_ADDRESS=my-gmail-address@gmail.com
EMAIL_PASSWORD=app-password-for-gmail
0 với

pip install python-dotenv

Sau đó tạo tệp

pip install python-dotenv
9

EMAIL_ADDRESS=my-gmail-address@gmail.com
EMAIL_PASSWORD=app-password-for-gmail

Vui lòng giữ tệp

pip install python-dotenv
9 trong cùng thư mục với mã của bạn. Để tải các giá trị từ
pip install python-dotenv
9, bạn có thể sử dụng đoạn mã sau

import os
from dotenv import load_dotenv
_ = load_dotenv[]

email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]

OK, mã của chúng tôi trông đẹp hơn. Bước tiếp theo sẽ là biến nó thành một hàm đẹp

Python gửi email dưới dạng một chức năng

Mã Python để gửi email có thể được bao gồm trong một hàm send_email[]. Nó sẽ chấp nhận ba đối số

  • import os
    from dotenv import load_dotenv
    _ = load_dotenv[]
    
    email_address = os.environ.get["EMAIL_ADDRESS"]
    email_password = os.environ.get["EMAIL_PASSWORD"]
    
    0 - địa chỉ người gửi email,
  • import os
    from dotenv import load_dotenv
    _ = load_dotenv[]
    
    email_address = os.environ.get["EMAIL_ADDRESS"]
    email_password = os.environ.get["EMAIL_PASSWORD"]
    
    1 - chủ đề email,
  • import os
    from dotenv import load_dotenv
    _ = load_dotenv[]
    
    email_address = os.environ.get["EMAIL_ADDRESS"]
    email_password = os.environ.get["EMAIL_PASSWORD"]
    
    2 - nội dung email

Mã dưới đây

import os
import smtplib
from email.message import EmailMessage
from dotenv import load_dotenv
_ = load_dotenv[]


def send_email[to, subject, message]:

    email_address = os.environ.get["EMAIL_ADDRESS"]
    email_password = os.environ.get["EMAIL_PASSWORD"]

    # create email
    msg = EmailMessage[]
    msg['Subject'] = subject
    msg['From'] = email_address
    msg['To'] = to
    msg.set_content[message]

    # send email
    with smtplib.SMTP_SSL['smtp.gmail.com', 465] as smtp:
        smtp.login[email_address, email_password]
        smtp.send_message[msg]

Đoạn mã trên không hoàn hảo, nhưng nó đơn giản. Tại sao nó không hoàn hảo?

import os
import smtplib
from email.message import EmailMessage
from dotenv import load_dotenv
_ = load_dotenv[]


def send_email[to, subject, message]:
    try:
        email_address = os.environ.get["EMAIL_ADDRESS"]
        email_password = os.environ.get["EMAIL_PASSWORD"]

        if email_address is None or email_password is None:
            # no email address or password
            # something is not configured properly
            print["Did you set email address and password correctly?"]
            return False

        # create email
        msg = EmailMessage[]
        msg['Subject'] = subject
        msg['From'] = email_address
        msg['To'] = to
        msg.set_content[message]

        # send email
        with smtplib.SMTP_SSL['smtp.gmail.com', 465] as smtp:
            smtp.login[email_address, email_password]
            smtp.send_message[msg]
        return True
    except Exception as e:
        print["Problem during send email"]
        print[str[e]]
    return False

Đoạn mã trên tốt hơn. Chúng tôi đã thêm xử lý ngoại lệ và kiểm tra thiết lập email và mật khẩu. Hàm send_email[] trả về

import os
from dotenv import load_dotenv
_ = load_dotenv[]

email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
4 nếu gửi email thành công và
import os
from dotenv import load_dotenv
_ = load_dotenv[]

email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
5 nếu không

Tóm lược

Mã Python ở trên giúp gửi email dễ dàng. Nó có thể là một khởi đầu tuyệt vời để tạo ra một số hệ thống thông báo hoặc tự động hóa. Nếu bạn muốn có nhiều chức năng hơn, bạn có thể tự viết mã hoặc sử dụng các gói hiện có. Tôi muốn giới thiệu

import os
from dotenv import load_dotenv
_ = load_dotenv[]

email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
6 để gửi email nâng cao [nếu bạn muốn gửi tệp đính kèm, phiên bản HTML của nội dung]. Việc sử dụng
import os
from dotenv import load_dotenv
_ = load_dotenv[]

email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
6 rất đơn giản

# after installation with
# pip install yagmail[all]

import yagmail
yag = yagmail.SMTP[EMAIL_ADDRESS, EMAIL_PASSWORD]
yag.send["to@someone.com", "subject", "message"]

Nếu bạn đang sử dụng khung web Django, bạn có thể sử dụng

import os
from dotenv import load_dotenv
_ = load_dotenv[]

email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
8 hoặc
import os
from dotenv import load_dotenv
_ = load_dotenv[]

email_address = os.environ.get["EMAIL_ADDRESS"]
email_password = os.environ.get["EMAIL_PASSWORD"]
9 từ
import os
import smtplib
from email.message import EmailMessage
from dotenv import load_dotenv
_ = load_dotenv[]


def send_email[to, subject, message]:

    email_address = os.environ.get["EMAIL_ADDRESS"]
    email_password = os.environ.get["EMAIL_PASSWORD"]

    # create email
    msg = EmailMessage[]
    msg['Subject'] = subject
    msg['From'] = email_address
    msg['To'] = to
    msg.set_content[message]

    # send email
    with smtplib.SMTP_SSL['smtp.gmail.com', 465] as smtp:
        smtp.login[email_address, email_password]
        smtp.send_message[msg]

0. Nếu bạn định gửi nhiều email hàng ngày, bạn nên xem xét các nhà cung cấp dịch vụ email giao dịch như. AWS SES, SendGrid, MailGun, MailJet. Họ có một số kế hoạch miễn phí. Dịch vụ Gmail cho phép bạn gửi 500 email mỗi ngày. Bạn cần kiểm tra cái nào phù hợp với mình

Nếu bạn có bất kỳ câu hỏi nào hoặc cần trợ giúp, vui lòng đăng ký nhận bản tin bên dưới. Trong biểu mẫu, bạn có thể để lại phản hồi, nhận xét hoặc câu hỏi. Chúng tôi cố gắng hết sức để phản hồi nhanh chóng. ]

Tôi có thể gửi email qua 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. Số Cổng được sử dụng ở đây là '587'. Và nếu bạn muốn gửi thư bằng một trang web khác ngoài Gmail.

Làm cách nào để gửi email bằng Python SMTP?

Python – Gửi email bằng SMTP .
máy chủ - Đây là máy chủ chạy máy chủ SMTP của bạn. .
cổng - Nếu bạn đang cung cấp đối số máy chủ, thì bạn cần chỉ định một cổng, nơi máy chủ SMTP đang lắng nghe. .
local_hostname − Nếu máy chủ SMTP của bạn đang chạy trên máy cục bộ, thì bạn chỉ có thể chỉ định localhost cho tùy chọn này

EmailMessage[] trong Python là gì?

EmailMessage cung cấp chức năng cốt lõi để cài đặt và truy vấn các trường tiêu đề, để truy cập nội dung thư và để tạo hoặc sửa đổi thư có cấu trúc . Một email bao gồm các tiêu đề và tải trọng [còn được gọi là nội dung].

Làm cách nào để gửi email HTML bằng Python?

Gửi nội dung HTML cùng với email. .
Nhập mô-đun. .
Xác định tài liệu HTML. .
Thiết lập địa chỉ email và mật khẩu. .
Tạo một lớp MIMEMultipart và thiết lập các trường Từ, Đến, Chủ đề. .
Đính kèm tài liệu html được xác định trước đó, dưới dạng loại nội dung html MIMEText vào thông báo MIME. .
Chuyển đổi email_message thành chuỗi

Làm cách nào để gửi email bằng Python mà không cần SMTP?

Gửi Email không cần máy chủ SMTP . Bạn sẽ cần cài đặt mô-đun chilkat để thực hiện việc này. nhập sys nhập chilkat mailman = chilkat. The module provides a method MxLookup that performs a DNS MX lookup to find the mail server using the recipient's email address. You'll need to install the chilkat module for doing this. import sys import chilkat mailman = chilkat.

Chủ Đề