Outlook 正在编写代码阶段以确定收件人是否来自域

Outlook 正在编写代码阶段以确定收件人是否来自域,outlook,exchangewebservices,blueprism,Outlook,Exchangewebservices,Blueprism,我需要在Blue Prism的代码阶段编写一段代码。我正在处理Outlook,我当前的对象可以在Outlook中发送电子邮件 但是,我现在需要做的是检查to/cc/bcc中的电子邮件地址是否来自同一个域(例如,检查所有收件人的电子邮件地址是否以“@abc.com”结尾)。我当前的代码是用C#编码的。有人知道怎么做吗 以下是我目前的情况: 我有一个字段的输入参数列表,如“收件人、发件人、抄送、密件抄送、…、abc\u收件人”。所有参数均为字符串形式,“abc_recipient_only”参数为布

我需要在Blue Prism的代码阶段编写一段代码。我正在处理Outlook,我当前的对象可以在Outlook中发送电子邮件

但是,我现在需要做的是检查to/cc/bcc中的电子邮件地址是否来自同一个域(例如,检查所有收件人的电子邮件地址是否以“@abc.com”结尾)。我当前的代码是用C#编码的。有人知道怎么做吗

以下是我目前的情况: 我有一个字段的输入参数列表,如“收件人、发件人、抄送、密件抄送、…、abc\u收件人”。所有参数均为字符串形式,“abc_recipient_only”参数为布尔形式

我当前使用的代码显示一个错误,即“第14行的编译器错误:当前上下文“”中不存在名称“收件人”


假设您的公司正在使用Exchange,请遍历邮件中的所有收件人(
MailItem.recipients
collection),并检查每个地址类型是否为
“EX”
-
Recipient.AddressEntry.type==“EX”
Recipient.PropertyAccessor.GetProperty(“http://schemas.microsoft.com/mapi/proptag/0x3002001F“”==”例如“
。后者效率更高。

该属性返回一个集合,表示Outlook项目的所有收件人。因此,您可以迭代集合中的所有项并检查收件人的域

使用Recipients(index)方法返回单个收件人对象,其中index是名称或索引号。名称可以是表示收件人的显示名称、别名、完整SMTP电子邮件地址或移动电话号码的字符串。一个好的做法是使用SMTP电子邮件地址发送邮件,使用移动电话号码发送移动邮件

属性返回表示收件人电子邮件地址的字符串


如果您遇到类似exchange的电子邮件地址,您可以使用文章中描述的方法。

Hmm我似乎无法让它工作,因为我的收件人是字符串格式的。我将一组收件人解析为一个字符串,并在每个收件人之间循环。你知道解决这个问题的方法吗?我不确定你的意思-OOM中的收件人对象肯定不是字符串。你的密码是什么?我已经更新了密码。感谢您的帮助。因此您没有使用Outlook对象模型。然后你需要检查每个收件人的域。是的,这是否意味着我必须阅读字符串的一部分才能这样做?或者有没有一个功能是为了处理这种情况而创建的?
    EmailMessage email = new EmailMessage(service);
    
    to = to.Replace(',',';');
    cc = cc.Replace(',',';');
    bcc = bcc.Replace(',',';');
    
    foreach(var row in to.Split(';')){
        if (abc_recipients_only == true){
            if(Recipient.AddressEntry == "abc.com"){
                email.ToRecipients.Add(row.Trim());
            }
        }
        else{
            if (string.IsNullOrEmpty(row.Trim())) continue;
            email.ToRecipients.Add(row.Trim());
        }
    }
    
    email.SendAndSaveCopy();