【发布时间】:2017-05-11 22:08:54
【问题描述】:
如果告诉如何,我可以附上我在这个问题中谈到的电子邮件。
我需要监控我的 Outlook 收件箱中是否有两封特定的电子邮件。每天晚上 7 点到达。另一个在晚上 7:20 到达(给或花几分钟)。
第一个电子邮件主题:“Automatic1 08092013”。 Automatic1 这个词总是一样的,数字代表日期。
第二封电子邮件主题:“Automatic2 - Aug 09, 2013”。 Automatic2 始终保持不变,但日期会发生变化。
Automatic1 的电子邮件正文包含一个字符串,其值表示货币。
7pm EmailBody 示例:CustomerCount: 11 VisitorNumber: 121 Amount: 811070
与第二封电子邮件中的值相比,我需要 CustomerCount、VisitorNumber 和 Amount:811070。金额“811070”表示等于 $8,110.70 的货币价值。
在 7:20 电子邮件到达后,如果值不匹配,请向我发送警报电子邮件。
这是棘手的部分。晚上 7:20 的电子邮件的值包含在多个表中。
7:20pm EmailBody 示例:
(这是表 #1,它包含 2 行和 2 列)
Process1 Totals(这是出现在第一个表格上方的电子邮件正文中的字符串文本)
Count1...数量1
11.......8110.70
(这是表 #2,它包含 3 行和 2 列)
Process2 Totals(这是出现在第二个表格上方的电子邮件正文中的字符串文本)
Count2 ..Amount2
121........811070
(这是表 #3,它包含一堆我不关心的东西)
故障
ID 编号 Amt ID2
296 15 737.33 0000113821
079 1 737.33 000938
34 1 737.33 0007000
746 10 737.33 0056200
741 8 737.33 0009733
089 6 737.33 0034664
636 1 737.33 007500
07 71 737.33 0000976
296 14 737.33 0023231
34 51 737.33 0000100
788 23 737.33 7100
场景:
如果 7:20 的电子邮件到达并且晚上 7 点的电子邮件不存在(从同一日期开始),请发送带有“警告文本”的电子邮件警报。
如果 7:20 的电子邮件到达并且晚上 7 点的电子邮件确实存在(重要:从同一日期开始),请比较
客户数:11
晚上 7:20 发送电子邮件表 1 Count1 值包含在第 1 列第 2 行中
Count1 金额 1 11 8110.70
如果它们不匹配,则发送带有“CustomerCount not equal”的电子邮件
另外,比较晚上 7 点访客人数:121
表 2 Count2 值包含在第 1 列第 2 行中
Count2 数量2 121 811070
如果它们不匹配,请发送带有“VisitorNumber not equal”的电子邮件
另外,比较晚上 7 点金额:811070
Table2 Amount2(见上文)值包含在第 2 列第 2 行中
如果不匹配,请发送“金额不匹配”的电子邮件
每封电子邮件都应包含确定存在问题所涉及的实际数学。每封电子邮件都应包含所有数字。当涉及到货币时,电子邮件正文中包含的两者之间应该存在差异。该值返回正数还是负数都没有关系。 我不必为每个问题提供单独的电子邮件。只要包含与货币的所有比较和差异,只需一封电子邮件即可。如果 7:20 的电子邮件没有收到(没关系)和/或数字都匹配并且没有差异,则根本不会发送任何电子邮件。
例子:
主题:警报
电子邮件正文:“每晚总数不匹配”
您的客户数 = 11
原始收件人客户数 = 12
已知问题:
晚上 7:20 电子邮件中的单元格由于某种原因包含空格。
晚上 7 点的电子邮件是一长串。
我对它应该如何工作的看法。
需要监控收件箱中 7:20 电子邮件的主题行。
当 7:20 的电子邮件进入时,在我的收件箱中搜索晚上 7 点的电子邮件,按主题搜索。
如果晚上 7 点的电子邮件存在,则从每封电子邮件中获取值,比较并决定是否需要发送警报电子邮件。(过于简化)
我宁愿不涉及 excel,但了解是否需要。
【问题讨论】:
-
我不确定这些电子邮件是从哪里来的等等。但这似乎是一种非常“脆弱”的应用逻辑的方式,而且很可能容易出错。有没有其他方法可以在电子邮件/Outlook 之外获取这些数据?
-
虽然您可以为 Outlook 编写代码来执行此操作,但 Outlook 具有各种用户验证对话框,可通过纠缠用户进行确认来防止基于 vba 的恶意软件和诸如此类的应用程序发送垃圾邮件。如果您不希望这是一个永久或半永久有人参与的解决方案,则需要使用 Outlook 以外的解决方案。