2016-04-06 9 views
1

ben sadece bir e-postaya metin eklemek için aşağıdaki kodu var: Bu satırdaEWS Seti EmailMessage.Body.Text hatası

You must load or assign this property before you can read its value

:

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 

hatası alıyorum

Ben t çalıştı neden

.Body.Text = New MessageBody(Config("protMarking"))

olduğunu o Bu hat üzerinde vücut özelliğini yüklemek:

This operation can't be performed because this service object doesn't have an Id

kapsamlı googling sonra ben figürü edemeyiz benim kod bakarak bir sürü:

.Load(New PropertySet(ItemSchema.Body))

Ancak şimdi bu hatayı alıyorum dışarıda. Yeni e-posta mesajının neden kimliği olmadığından emin değilim?

NOT: , ews hizmetini döndüren bir özelliği çağırır. Bunun düzgün çalıştığını kontrol ettim.

cevap

2

sadece Body özelliğini belirlesin (değil Body.Text)

Load çağrısı sizin durumda gerekli değildir. Yine de referans olarak, e-posta mesajını henüz serviste oluşturmadığınız için çalışmıyor. muhtemelen @PaulG cevabı ve ondan önce biraz deneme yanılma çalışması kullanılarak 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 
0

olması gereken (Send olsun o zaman sadece olur, bu benim çözüm oldu.

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 

bu hat ile önemli değişiklik/çözümlenme: