Skip to content

Forward - Invalid child element 'IsRead' #268

Description

@aldent95

I've been working on a Proof of Concept today using this gem and keep on getting the error in the title when trying to forward emails.

Full error
DEBUG Viewpoint::EWS::Connection : Internal SOAP error. Message: The request failed schema validation: The element 'ForwardItem' in namespace 'http://schemas.microsoft.com/exchange/services/2006/types' has invalid child element 'IsRead' in namespace 'http://schemas.microsoft.com/exchange/services/2006/types'. List of possible elements expected: 'CcRecipients, BccRecipients, IsReadReceiptRequested, IsDeliveryReceiptRequested, From, ReferenceItemId, NewBodyContent' in namespace 'http://schemas.microsoft.com/exchange/services/2006/types'., Code: a:ErrorSchemaValidation

SOAP request being sent as provided by require 'viewpoint/logging/config', removing my email address for obvious reasons.

DEBUG  Viewpoint::EWS::SOAP::ExchangeWebService : Sending SOAP Request:
----------------
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010"/>
  </soap:Header>
  <soap:Body>
    <CreateItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" MessageDisposition="SendAndSaveCopy">
      <Items>
<t:ForwardItem>
  <t:ToRecipients>
    <t:Mailbox>
      <t:EmailAddress>REMOVED</t:EmailAddress>
    </t:Mailbox>
  </t:ToRecipients>
  <t:IsRead/>
  <t:ReferenceItemId Id="AAMkADMzZGNlNjQwLTY2YWUtNDc2NC05YWU5LTVjYmY2NzhiZmY5MwBGAAAAAAC4is8815fvQY+VIAunqvgGBwBWmlaGdmoiQ46HU+QHQjnlAAGLeS9xAABWmlaGdmoiQ46HU+QHQjnlAAGLeTk4AAA=" ChangeKey="CQAAABYAAABWmlaGdmoiQ46HU+QHQjnlAAGLhAka"/>
  <t:NewBodyContent BodyType="Text">This is a test forward</t:NewBodyContent>
</t:ForwardItem>
      </Items>
    </CreateItem>
  </soap:Body>
</soap:Envelope>

----------------

Code I am using to forward

def forward(message)
    message.forward do |m|
      m.new_body_content = 'This is a test forward'
      m.to_recipients << 'REMOVED'
      m.importance = nil
      m.is_read = nil
    end
  end

I did manage to work around the issue by directly modifying the Viewpoint code in the gem folder but obviously this is far from an ideal solution.
To get it to work I changed this
msg[:is_read] = is_read
to this
msg[:is_read] = is_read if is_read != nil
that code is on line 67 of lib/ews/templates/message.rb

I am more than happy to put in a Pull Request if you want, I just can't do it right at this moment.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions