Chào mọi người,
Dạo gần đây mình có tìm hiểu về cách tự động hóa một số tác vụ lặp đi lặp lại trong công việc, đặc biệt là với Excel. Mình thấy nhiều anh em trong diễn đàn chia sẻ các bài viết về Python tương tác với Excel rất hay, nên mình cũng muốn đóng góp một chút kinh nghiệm cá nhân.
Hôm nay, mình muốn chia sẻ cách tự động hóa việc gửi báo cáo Excel hàng ngày qua email bằng Python và Gmail API. Đây là một ứng dụng thực tế giúp tiết kiệm thời gian đáng kể, đặc biệt khi bạn cần gửi báo cáo cho nhiều người hoặc gửi định kỳ.
Các bước thực hiện cơ bản:
- Chuẩn bị dữ liệu Excel: Đảm bảo file báo cáo của bạn đã sẵn sàng.
- Cài đặt thư viện cần thiết:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib - Thiết lập Gmail API: Bạn cần tạo một dự án trên Google Cloud Console, bật Gmail API và tạo khóa API.
- Viết script Python: Sử dụng các thư viện đã cài đặt để đọc file Excel, tạo nội dung email và gửi đi thông qua Gmail API.
Ví dụ về cách gửi email đơn giản:
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
# ... (Code thiết lập credentials và service)
def create_message(sender, to, subject, message_text):
from email.mime.text import MIMEText
message = MIMEText(message_text)
message['to'] = to
message['from'] = sender
message['subject'] = subject
return {'raw': base64.urlsafe_b64encode(message.as_bytes()).decode()}
def send_message(service, user_id, message):
try:
message = (service.users().messages().send(userId=user_id, body=message)
.execute())
print(f'Message Id: {message["id"]}')
return message
except Exception as e:
print(f'An error occurred: {e}')
return None
# ... (Gọi hàm để gửi email)
Mình sẽ cố gắng viết một bài hướng dẫn chi tiết hơn với đầy đủ code và giải thích các bước thiết lập API trong thời gian tới. Các bạn có câu hỏi hoặc muốn thảo luận thêm về chủ đề này thì cứ comment bên dưới nhé!