创建VB代码以从Outlook中的邮件正文中提取电子邮件地址

时间:2013-08-22 17:16:39

标签: php vb.net outlook-vba

让我解释一下我需要做什么:

问题:

我收到了进入Outlook中特定电子邮件收件箱的在线订单的电子邮件,我想向发件人发送自动回复,让他们知道订单已收到。问题是这样的:发件人的电子邮件不在发件人的电子邮件正文中 - 来自字段的填写了我们的webadmin地址(电子邮件订单是通过我们学校网站的在线表格生成的,并且是从集中帐户。)因此,自动规则只是向网络管理员电子邮件帐户发送电子邮件回复,而不是实际订单。

电子邮件细节:

所有这些电子邮件都有相同的主题。具有此主题行的所有电子邮件都将被过滤到“在线订单 - 传入”文件夹中。所有电子邮件都需要在正文中包含发件人电子邮件地址;这是一封实际的电子邮件(敏感信息是x-out out - 电子邮件地址在最后):

=============================================== ==================

打印请求:

打印职位名称:会计专业 部门:
AccountNo:xxxx-xxxxxxx-xxxxxx-xxxx FileNo:

Date_In:08-22-2013

Date_Needed:08-24-2013

Num_Originals:2

Num_Copies:40

Finished_Copy:正面和背面

Paper_Color:绿色

Paper_Stock:无

Finished_Size:8 1/2 x 11

Carbonless_Choice:无

Bindery_Choice:无

墨水颜色:使用黑色墨水

特别说明:

谢谢, xxxxxx xxxxxx SENDERSREALEMAILADDRESS@xxx.edu

电话:分机XXXX 传真:分机XXXX

=============================================== =======================

我对VB很新,但我有能力学习,但我没有太多运气入门。我想要做的是在订购单中生成一封电子邮件到嵌入式电子邮件地址,并让电子邮件中包含一条简单的消息,让我们的客户知道我们已收到他们的订单。

如果有人能为我提供任何帮助,我将非常感激。

1 个答案:

答案 0 :(得分:0)

尝试将电子邮件正文(在空格上)拆分为数组,然后检查数组的每个元素是否为@符号和句点。
像这样:

For Each Sec in Strings.Split(Item.Body)
  If Sec.Contains("@") And Sec.Contains(".") Then
    ''At this point, Sec contains the email address. Do something here.

    Exit For
  End If
Next

要在自定义文件夹中收到电子邮件,请尝试以下操作:

Set Items = Session.GetDefaultFolder(olFolderInbox).Parent.Folders("Print Center").Items

或者在自定义子文件夹中:

Set Items = Session.GetDefaultFolder(olFolderInbox).Parent.Folders("Print Center").Folders("Online Oredrs - Incoming").Items