Tập lệnh: chuyển tiếp tất cả email từ hộp thư đến, sau khi người dùng gửi 'yêu cầu' (Outlook 2003)


2

Tôi đang tìm kiếm một kịch bản Outlook (2003).

Những gì tôi cần: Tôi muốn chuyển tiếp tất cả các email của mình từ hộp thư-A (từ PC) sang hộp thư-B (trên điện thoại của tôi). Cái bắt là: Quy tắc này chỉ nên chạy, khi tôi gửi 'yêu cầu' đến hộp thư-A.

Những gì tôi đã làm: Tôi đã tạo hai quy tắc trong Outlook 2003.

Quy tắc1- Quy tắc này chuyển tiếp tất cả các email từ hộp thư-A đến hộp thư-B. Quy tắc này hoạt động, nhưng nó không tự động (chỉ chạy khi tôi nhấn nút 'quy tắc chạy'). Tôi chỉ muốn nhận email 'khi tôi muốn'.

Quy tắc2- Tôi đã tạo quy tắc thứ hai trong Outlook. Quy tắc này bắt đầu (chính nó) khi hộp thư-A nhận được email có 'get_mail' làm chủ đề email.

Mục tiêu của tôi: Tôi muốn rule2 bắt đầu một kịch bản. Rõ ràng, tập lệnh này nên chạy rule1.

Kết quả: Tất cả các email từ hộp thư-A được chuyển tiếp đến hộp thư-B.

Backgroud: Mục tiêu của tôi là đọc email công việc trên điện thoại, đi lại giữa công việc và nhà. Bằng cách gửi email từ điện thoại của tôi đến PC của tôi (với chủ đề email get_mail), PC của tôi (hộp thư-A) sẽ chuyển tiếp tất cả email đến điện thoại của tôi (hộp thư-B).

Điều này có thể sử dụng VBA không? Và mã nên như thế nào? Tôi không có kinh nghiệm về kịch bản, nhưng nói chung tôi rất tốt với PC và phần mềm. Vì vậy, tôi sẽ có thể cài đặt nó khi ai đó cung cấp mã.

( ps Không thể cài đặt tài khoản pop / imap trên điện thoại của tôi)

Câu trả lời:


0

Có, có thể có một quy tắc kích hoạt quy tắc khác. Dưới đây là quy trình VBA cho Outlook sẽ hoạt động:

Sub RunRuleToForwardEmail(MyMail As MailItem)

    Dim st As Outlook.Store
    Dim myRule As Outlook.Rule

    ' get default store (where rules live)
    Set st = Application.Session.DefaultStore
    ' get rule
    Set myRule = st.GetRules("change_this_to_whatever_the_the_name_of_rule1_is") 'change this line
    myRule.Execute

End Sub

Hãy nhớ thay đổi văn bản này : change_this_to_whatever_the_the_name_of_rule1_is.

Khi bạn lưu Dự án VBA Outlook của mình, hãy chỉnh sửa các hành động của quy tắc2. Sau đó, bạn có thể chọn tập lệnh trên trong danh sách các tùy chọn.


Cảm ơn bạn đã trả lời nhanh chóng. Tên của quy tắc này thực sự là 'rule1'. Vì vậy, tôi đã thay đổi bit mã của bạn thành 'Set myRule = st.GetRules ("rule1")'. Đúng không? Tôi đã có thể chọn tập lệnh là hành động trong rule2. Không may, nó không hoạt động. Có phải tôi đã phạm phải sai lầm?
user316237

Hừm, đúng rồi. Tôi đã thử bản thân mình và nó đã hoạt động (mặc dù rule1 của tôi chỉ phân loại thư của tôi, không chuyển tiếp nó). Thêm mã bổ sung này vào đầu thủ tục : MsgBox "The RunRuleToForwardEmail VBA procedure is running". Đặt nó trên dòng riêng của nó trước câu lệnh Dim đầu tiên. Sau đó thử nó. Nếu mã đang chạy đúng, một thông báo sẽ xuất hiện trong Outlook để cảnh báo bạn. Nếu thông báo này không xuất hiện, thì phải có điều gì đó sai với quy tắc có nghĩa là kích hoạt nó.
Garrulinae

Không thành công :-(. Mã như sau: [Link] Sub RunRuleToForwardEmail (MyMail As MailItem) MsgBox "Quy trình VBA RunRuleToForwardEmail đang chạy" Dim st As Outlook.Store Dim myRule As Outlook.Rule Dim rl As Outlook.Rule cửa hàng mặc định (nơi quy tắc sống) Đặt st = Application.Session.DefaultStore 'get rule Đặt myRule = st.GetRules (rule1) myRule.Execute End Sub
user316237

Aha - văn bản rule1phải được bao quanh bởi dấu ngoặc kép : "rule1". Tin nhắn vẫn nên xuất hiện, phải không?
Garrulinae

Tôi thêm dấu ngoặc kép, không có gì thay đổi. Tôi cũng không thấy tin nhắn nào. Tôi đã thêm vào rule1 'đặt màu cờ xanh'. Và theo quy tắc2 'đặt cờ màu tím'. Khi email có chủ đề get_mails đến, email này sẽ có cờ màu tím. Bất kỳ cách nào khác để tạo một 'kiểm tra'?
user316237
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.