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.
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:00Bài viết liên quan
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 //github.com/janscas/pyo365#authentication và //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.
- Đăng nhập tại cổng đăng ký ứng dụng Microsoft
- Tạo một ứng dụng, lưu ý id ứng dụng của bạn [client_id]
- 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 //login.microsoftonline.com/common/oauth2/nativeclient "là URL chuyển hướng
- 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ờ.
- 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
- 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[]