我有以下代码只需将文字添加到电子邮件中:
msg = New EmailMessage(Service)
With msg
.From = New EmailAddress(Config("OutSender"))
.ToRecipients.Add(New EmailAddress(Config("OutRecip")))
.Subject = Config("OutSubject")
.Load(New PropertySet(ItemSchema.Body))
.Body.Text = Config("protMarking")
.Send()
End With
我收到错误:
You must load or assign this property before you can read its value
在这一行:
.Body.Text = New MessageBody(Config("protMarking"))
这就是我尝试在此行加载body属性的原因:
.Load(New PropertySet(ItemSchema.Body))
但是我现在收到此错误:
This operation can't be performed because this service object doesn't have an Id
经过广泛的谷歌搜索和大量查看我的代码后,我无法弄明白。我不确定为什么新的电子邮件没有ID?
注意: Service
调用返回ews服务的属性。我已经检查过这是否正常。
答案 0 :(得分:2)
您应该只设置Body
属性(不是Body.Text
)
在您的情况下,无需拨打Load
。但是,作为参考,它不起作用,因为您尚未在服务上创建电子邮件消息。只有当你到达Send
时(这应该是SendAndSaveCopy()
msg = New EmailMessage(Service)
With msg
.From = New EmailAddress(Config("OutSender"))
.ToRecipients.Add(New EmailAddress(Config("OutRecip")))
.Subject = Config("OutSubject")
.Body = Config("protMarking")
.SendAndSaveCopy()
End With
答案 1 :(得分:0)
使用@PaulG答案和之前的一些试错工作,这是我的解决方案。
msg = New EmailMessage(Service)
With msg
.From = New EmailAddress(Config("OutSender"))
.ToRecipients.Add(New EmailAddress(Config("OutRecip")))
.Subject = Config("OutSubject")
.Body = New MessageBody(Config("protMarking"))
.SendAndSaveCopy()
End With
这一行是主要的变化/修复:
.Body = New MessageBody(Config("protMarking"))