Email message missing

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have been able to send HTML email programmatically thru Outlook from within
my app. The message is received by the recipient, and the email is recorded
as sent in the Outllook sent box. But the message in the sent box is empty.

I basically read the html email message from a .htm file, assign the message
to a variable, and then assign the value of this variable to the HTMLbody
property. I then .send() the email thru Outlook, and the message is received
fine. The email is registered in the Outlook sent box as being sent, but the
message there is completely blank.

Can anyone give me some ideas on what I may be missing?

Many thanks,
Mark
 
Ken,

Got excited cause that sounded like a good idea, but no luck. Still get the
email recorded into sent box but with a blank messge even tho the email
arrives to recipient fine with the full message. Also tried save(), send(),
save() but still get a blank message in the sent box.

Any and all ideas on this one very much appreciated,
Mark
 
I can't really think of anything, in fact the Save hasn't been necessary in
any of the code I've worked on that puts formatted text into HTMLBody. All I
usually do is set .HTMLBody, .Subject, .BodyFormat (to olFormatHTML) and
then I add one or more Recipient object, resolve the recipients and call
..Send.

That's it, nothing else, and the sent emails look fine in Sent Items.
 
Wild thoughts: Debug.Print the body before and after the send.
Try Chr() on the first character.
Is the text missing just from the OL interface, or have you tried
looking at .Body (in the sent folder) programmatically?

 
Wild Bill'

Good ideas.

I tried adding string to top of the html message and still no message in the
sent folder. I tried sending plain text (.body instead of .htmlbody), and
again the message arrives fine, but the sent folder has a blank message.

Not sure how to check the .body in the sent folder programmatically. Any
chance you can give me an example of how to? I know this should not be hard
to do, but I'm still a novice at some of this.

Thanks again,
Mark
 
Ken,

Thanks. I thought this is the way to do it, but cannot get it to work for
me for some reason. I do all the same.

I wonder if there is some setting in OL that is preventing the save of the
message body? But when I send from inside OL, there is no problem and the
full message is saved in the Sent folder, so do not think it can be an OL
setting.

Not sure what you meant by "resolve the recipients". Don't think this is my
problem, but could you explain?

Thanks again,
Mark
 
Thanks to Ken and Wild Bill. Still not having any luck on this, tho. I
tried checking the body prior to send() and the message is there and is fine.


I also tried a display() instead of send(), and then clicked on Send when
the email was displayed. This resulted in the email message arriving fine,
and also being recorded in the sent folder fine. So the problem is still
getting the body of the message to be available in the sent folder when I
send() programmatically.

Am really stumped. Any ideas very much appreciated.
Mark
 
Well assuming you've selected (highlighted) the message,
Dim mItem As MailItem
Set mItem = Application.ActiveExplorer.Selection.Item(1)
debug.print mitem.body

To get to the message use something like the following (untested).
I believe you might also alternatively utilize
Item.SaveSentMessageFolder.

Sub ShowSpecificSentBody(MySubject As String)
Dim Mail As Outlook.MailItem
Dim Items As Outlook.MAPIFolder
Dim obj as Object

Set Items =
Application.Session.GetDefaultFolder(olFolderSentMail).Items
For Each obj In Items
If TypeOf obj Is Outlook.MailItem Then
Set Mail=obj
If Mail.Subject=MySubject Then
debug.print Mail.Body
Exit For
End If
End If
Next
End Sub

Not knowing what the mystery of it missing is - and if it's also missing
here - perhaps you can assign it here as a temporary workaround.

Another wild thought led to the article "INFO: MAPI Is Not Suitable for
HTML Messages"
http://support.microsoft.com/kb/268440/
that may have merit in solving your dilemma. Perhaps the real experts
here can comment on that. It might be helpful to show your send command
and context code and Outlook version.

More info and code about examining body can be adapted from msdn on
HTMLProperty
http://msdn2.microsoft.com/en-us/library/aa171418(office.11).aspx
and
http://msdn2.microsoft.com/en-us/library/aa613164(office.10).aspx

I'm an OL programming novice, so Ken and all, please try to stay close
here!
 
Ken,

Resolve...of course I realize what that is. I rarely use it because my
emails are programmatically sent using an outside email list, not the address
book. Sorry, that was a bonehead question. Please ignore.

But sure wish I could figure out why I cannot get the message to show up in
the sent email item even tho it shows up in the recipient inbox no probem.

Thanks,
Mark
 
Set oRecip = colRecips.Add(whatever)
oRecip.Resolve
If oRecip.Resolved Then
item.Send
' etc.

That would just affect sending however, it wouldn't affect the visibility of
the HTMLBody.

Just asking, but after you exit and restart Outlook are the bodies still
invisible?
 
No idea at this point. I'd suggest backing up and playing with one of the
samples at www.outlookcode.com that sends out HTML messages or formats an
HTMLBody. See if those samples work to eliminate anything local to your
computer setup. If those work then analyze where your code differs to maybe
get some clues as to what's happening.
 
Back
Top