Gửi email theo một thời gian nhất định trong ngày

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

truongan96

Thành viên mới
Tham gia
17/1/23
Bài viết
3
Được thích
0
Xin chào quý anh chị!

Em đang cần tìm hiểu cách tự động gửi email hàng ngày qua Outlook với một số điều kiện sau

- Email sẽ được gửi tự động vào lúc 7h tối hàng ngày
- Gửi cho hơn 30 người cùng một lúc
- Đính kèm file ở một địa chỉ thư mục cụ thể được định sẵn ( cụ thể là file excel ).

Có công cụ nào có thể giải quyết được các điều kiện trên không ạ?

Mong quý anh chị hồi đáp
 
Code VBA làm nhiệm vụ gửi mail theo danh sách.
Thiết lập Task Scheduler để chạy code VBA kia theo thời gian chỉ định.
 
Upvote 0
Chào bạn!
Không biết bạn có đoạn code VBA đó không ạ
Mình chưa từng tìm hiểu về code VBA nên không rõ lắm

Mong bạn giúp đỡ
Để Outlook tự động gửi email theo giờ cố định trong ngày hay thực hiện một số công việc nào đó bằng macro VBA, thông thường chỉ có cách như sau (theo như mình thấy hầu như những sách nào chuyên về lập trình Outlook VBA đều theo hướng như vậy):
  1. Tạo một Task gồm tiêu đề (Subject), ngày giờ Reminder.
  2. Viết một Class Module theo dõi Task nêu trên, tức là lợi dụng tính năng Reminder của Outlook (thường dùng sự kiện BeforeReminderShow), khi Task được kích hoạt thì code trong Class Module sẽ chạy.
  3. Để Outlook chạy liên tục (không được tắt).
Việc dùng Task Scheduler trong trường hợp này sẽ không có tác dụng, tham khảo câu trả lời trên trang Microsoft tại đây: Outlook VB Script Automate Email in Task Scheduler

Nếu chủ thớt thấy ổn thì mình sẽ viết macro cho.
 
Upvote 0
Chết dở. Còn không phân biệt được VBA và VB Script.
Dẫn chứng bài đâu đâu mà không biết người ta viết nội dung gì bên trong.

VBA hay VB Script đều được cả, quan trọng là khả năng làm được tới đâu.
Còn cái Task Scheduler chỉ đơn giản là công cụ có sẵn của Windows làm 01 nhiệm vụ duy nhất: Chạy tập lệnh/ tập tin chỉ định theo thiết lập.
Lại lòi ra thêm cái dở là chưa nắm được công cụ Task Scheduler.

Có biết là dữ liệu của thớt đang có sẵn ở tập tin Excel không? Người ta đơn giản là chép code VBA gửi mail + kèm file có sẵn (nhiều vô kể ở diễn đàn này) vào Excel, rồi tạo một cái Task trong Task Sheduler chạy tập tin Excel kia là xong việc.
Đây là cách đơn giản nhất.

Còn cách hịn hơn là viết khúc code tạo sẵn mail gửi hàng loạt theo thời gian chỉ định cho một và/ hoặc vài năm. Tới giờ là Outlook tự làm việc.
 
Upvote 0
Sub AutoSendEmail()

Dim OutlookApp As Object Dim OutlookMail As Object

'Create Outlook object Set OutlookApp = CreateObject("Outlook.Application")

'Create new mail Set OutlookMail = OutlookApp.CreateItem(0)

With OutlookMail .To = "email1@example.com;email2@example.com;email3@example.com" ' List of recipient emails, separated by semi-colons .CC = "" ' List of carbon copy recipient emails, separated by semi-colons .BCC = "" ' List of blind carbon copy recipient emails, separated by semi-colons .Subject = "Automatic Email" .Body = "This is an automatic email sent at 7 PM every day." .Attachments.Add "C:\path\to\attachment.xlsx" 'Path to the attachment .SendUsingAccount = OutlookApp.Session.Accounts.Item(1) 'Select which account to send the email from .Send End With

'Clean up Set OutlookMail = Nothing Set OutlookApp = Nothing

End Sub

'To schedule the sending of the email at 7 PM every day, you can use the Windows Task Scheduler to run the above macro at the desired time.

'Please also note that sending to more than 30 people at a time, depending on the recipient server, may be considered as spam, and emails may not be delivered or blocked.
 
Upvote 0
Sub AutoSendEmail()

Dim OutlookApp As Object Dim OutlookMail As Object

'Create Outlook object Set OutlookApp = CreateObject("Outlook.Application")

'Create new mail Set OutlookMail = OutlookApp.CreateItem(0)

With OutlookMail .To = "email1@example.com;email2@example.com;email3@example.com" ' List of recipient emails, separated by semi-colons .CC = "" ' List of carbon copy recipient emails, separated by semi-colons .BCC = "" ' List of blind carbon copy recipient emails, separated by semi-colons .Subject = "Automatic Email" .Body = "This is an automatic email sent at 7 PM every day." .Attachments.Add "C:\path\to\attachment.xlsx" 'Path to the attachment .SendUsingAccount = OutlookApp.Session.Accounts.Item(1) 'Select which account to send the email from .Send End With

'Clean up Set OutlookMail = Nothing Set OutlookApp = Nothing

End Sub

'To schedule the sending of the email at 7 PM every day, you can use the Windows Task Scheduler to run the above macro at the desired time.

'Please also note that sending to more than 30 people at a time, depending on the recipient server, may be considered as spam, and emails may not be delivered or blocked.
Cái code này phải bổ sung thêm lệnh đồng bộ thư mục mail với máy chủ (đối tượng SyncObject) hoặc phải mở Outlook đang chạy, nếu không khi thư gửi đi hết thì Outlook thoát ngay lập tức và số thư đó sẽ kẹt ở thư mục Outbox.
SyncObject object (Outlook)
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom