Hướng dẫn send email python outlook 365 - gửi email python triển vọng 365

Bỏ qua nội dung

Python - Gửi email bằng Office 365

Python - Gửi email bằng Office 365

Bạn có muốn tìm hiểu cách gửi email bằng Python và Office365 không? Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng Python để gửi thông báo email bằng máy chủ SMTP Office365.

• Ubuntu 20 • Ubuntu 19 • Ubuntu 18 • Python 3.8.5 • Office 365
• Ubuntu 19
• Ubuntu 18
• Python 3.8.5
• Office 365

Danh sách thiết bị

Phần sau đây trình bày danh sách các thiết bị được sử dụng để tạo hướng dẫn này.

Là một cộng tác viên Amazon, tôi kiếm được từ các giao dịch mua đủ điều kiện.

Hướng dẫn liên quan - Python

Trên trang này, chúng tôi cung cấp quyền truy cập nhanh vào một danh sách các hướng dẫn liên quan đến Python.

Hướng dẫn Python - Gửi email bằng Office 365

Sử dụng Python để gửi email bằng Office365.

Nếu bài kiểm tra thành công, bạn sẽ nhận được tin nhắn đã gửi.

Hướng dẫn send email python outlook 365 - gửi email python triển vọng 365

Sử dụng Python để gửi email bằng Office365 có chứa tệp đính kèm.

Xin chúc mừng! Bạn có thể sử dụng Python để gửi email bằng Office365.

Virtualcoin CISSP, PMP, CCNP, MCSE, LPIC22021-03-12T11: 46: 39-03: 002021-03-12T11:46:39-03:00

Bài viết liên quan

Liên kết tải trang

Trang web này sử dụng cookie và dịch vụ của bên thứ ba. Được Ok

Đối với tôi câu trả lời được cung cấp bởi @prometheus đã đưa ra "RunTimeError: Không tìm thấy mã thông báo xác thực. Dòng xác thực cần thiết" như được đề cập bởi một bình luận. Nó có thể là do email công ty của tôi với 2FA được bật. Vì vậy, tôi đã phải làm theo các bước được cung cấp trong https://github.com/janscas/pyo365#authentication và https://pypi.org/project/o365/#authentication

Để làm việc với OAuth, trước tiên bạn cần đăng ký ứng dụng của mình tại Cổng thông tin đăng ký ứng dụng Microsoft.

  1. Đăng nhập tại cổng đăng ký ứng dụng Microsoft
  2. Tạo một ứng dụng, lưu ý id ứng dụng của bạn (client_id)
  3. Tạo mật khẩu mới (client_secret) trong phần "Bí mật ứng dụng" trong phần "Nền tảng", thêm nền tảng web mới và đặt https://login.microsoftonline.com/common/oauth2/nativeclient "là URL chuyển hướng
  4. Quyền API Goto> Thêm quyền> Đồ thị Microsoft> Quyền được ủy quyền, thêm các quyền bên dưới:
    • IMAP.AccessAsUser.All

    • Mail.Send

    • Pop.AccessAsuser.all

    • User.Read

    • SMTP.Send

    • OFFLINE_ACCESS # Nếu bạn muốn làm mới mã thông báo là avaialble trong o365_token.txt. Nếu không, bạn cần phải có mã thông báo truy cập cứ sau 1 giờ.

      Hướng dẫn send email python outlook 365 - gửi email python triển vọng 365

  5. Chạy bên dưới tập lệnh Python để có được mã thông báo truy cập sẽ được lưu trữ trong tệp có tên O365_Token.txt trong thư mục hiện tại
from O365 import Account

scopes =  ["IMAP.AccessAsUser.All", "POP.AccessAsUser.All", "SMTP.Send", "Mail.Send", "offline_access"]

account = Account(credentials=('client_id_of_azureapp', 'client_secret_of_azureapp'))
result = account.authenticate(scopes=scopes)  # request a token for this scopes
  1. Sử dụng tập lệnh dưới đây để gửi email bằng cách cung cấp tệp xác thực được tạo trong bước trước.
from O365 import Account
from O365.utils.token import FileSystemTokenBackend
tk = FileSystemTokenBackend(token_path=".", token_filename="o365_token.txt")

credentials = ('client_id') # client secret not required

account = Account(credentials, auth_flow_type = 'public',token_backend=tk)
m = account.new_message()
m.to.add('')
m.subject = 'Testing!'
m.body = "George Best quote: I've stopped drinking, but only while I'm asleep."
m.send()

Lưu ý: Nếu bạn có sự đồng ý của quản trị viên hoặc bạn là quản trị viên hoặc tài khoản Azure, bạn có thể bỏ qua bước 4,5,6 và sử dụng mã trực tiếp dưới đây.

from O365 import Account
from O365.utils.token import FileSystemTokenBackend
tk = FileSystemTokenBackend(token_path=".", token_filename="o365_token.txt")

credentials = ('client_id', 'client_secret') # from step 2,3
account = Account(credentials, auth_flow_type = 'credentials', tenant_id="your_app_tenant_id") # tenant_id (required) available just below client_id in azure

if account.authenticate():
    print('Authenticated!')

mailbox = account.mailbox("") # Your email (required) from which you want to send email (your app should have permission to this email)
m = mailbox.new_message()
m.to.add('to')
m.subject = 'Testing!'
m.body = "George Best quote: I've stopped drinking, but only while I'm asleep."
m.send()