Outlook 使用Redemption回复邮件时,只会间歇性地设置正文文本

Outlook 使用Redemption回复邮件时,只会间歇性地设置正文文本,outlook,outlook-redemption,Outlook,Outlook Redemption,我使用下面的方法来回复进入业务功能邮箱的邮件 正在添加的正文文本只是间歇性地进行设置。只有当有人通过电子邮件发送来取消订阅邮件,但在数据库中找不到发件人(或正文中)的电子邮件地址,并且我们希望要求他们向我们发送他们要取消订阅的邮件地址时,才会调用此方法 private void replyToMail(OutlookItem item) { RDOSession session = new RDOSession(); session

我使用下面的方法来回复进入业务功能邮箱的邮件

正在添加的正文文本只是间歇性地进行设置。只有当有人通过电子邮件发送来取消订阅邮件,但在数据库中找不到发件人(或正文中)的电子邮件地址,并且我们希望要求他们向我们发送他们要取消订阅的邮件地址时,才会调用此方法

private void replyToMail(OutlookItem item)
        {
            RDOSession session = new RDOSession();
            session.Logon(null, null, null, true, null, null);
            RDOMail thisItem = session.GetMessageFromID(item.EntryID, item.StoreID, null);
            RDOMail reply = thisItem.Reply();

            RDOAddressEntry optingout = session.AddressBook.GAL.ResolveName("optingout");
            //reply.Sender = optingout; this had no effect
            reply.SentOnBehalfOf = optingout;
            reply.Subject = "Automated Response - Could not complete unsubscribe";
            reply.Body = "This is an automated response from the Newsletter unsubscribe system. We couldn't find "+item.Sender+" in our database to unsubscribe you from our mailings.\r\n\r\nPlease reply to this mail and include the email address you want to unsubscribe.\r\n\r\nKind Regards\r\n.";
            reply.Send();

            session.Logoff();
        }

首先,如果您已经在使用OOM,则没有理由调用RDOSession.Logon。您只需存储MAPIOBJECT属性: 将line session.Logon()替换为 session.MAPIOBJECT=item.Application.session.MAPIOBJECT 不要呼叫注销


第二,你是否知道消息是在没有正文的情况下接收的?你在“已发送邮件”文件夹中看到空bofy了吗?

我不得不编辑thingie.HTMLBody和thingie.Body


我想我本可以知道如何判断何时设置每一个的值,但因为我只是想确定在这个例子中我对身体有控制权,所以我只是简单地设置了两者。

不确定OOM是什么。。。传入的OutlookItem类型是软件中使用的自定义类。。。对不够清晰表示歉意。收到的邮件有一个正文,如果您点击“回复”,然后不键入任何内容就发送,您会期待它。换言之,似乎我的回复电话。Body=“…”;没有效果。