מהלך העניינים הוא כזה:1) אני יוצר מייל באמצעות הקוד הבא:
Public Function sendMail()1 Dim OutlObj As Object, NameSpaceObj As Object, EmailObj As Object, AttachmentObj As Object 2 Set OutlObj = CreateObject("Outlook.Application") 3 Set NameSpaceObj = OutlObj.GetNamespace("MAPI") 4 Set EmailObj = OutlObj.CreateItem(0) 5 EmailObj.Subject = "Something" 6 EmailObj.To = "[email protected]" 7 Set AttachmentObj = EmailObj.Attachments 8 AttachmentObj.Add "C:\Documents and Settings\Administrator\Desktop\SomeGif.gif" 9 EmailObj.htmlbody = "<html>" & vbCrLf & _ "<head>" & vbCrLf & _ "</head>" & vbCrLf & _ "<body>" & vbCrLf & _ "<img src='cid:SomeGif.gif'>" & vbCrLf & _ "</body>" & vbCrLf & _ "</html>" 10 EmailObj.Save 11 EmailObj.Display End Function
|
2) נפתח לי חלון מייל של אוטלוק עם התוכן שרציתי.
3) אני לוחץ על הכפתור send והמייל נשלח ליעד.
4) ביעד מתקבל מייל ללא התוכן שהכנסתי (כלומר הקוד html במייל שונה).
קיימת תופעה מוזרה - אם אני עוצר את הקוד (ע"י break point) בשורה End Function ואז שולח את המייל, המייל מתקבל ביעד בסדר.
מהתופעה הזו אני מסיק:
א. אטלוק משנה את תוכן הhtmlbody .
ב. כל זמן שהאובייקט EmailObj קיים בזיכרון, אוטלוק לא נוגע לי במייל, עם הסרת האובייקט בסיום הפונקציה, אוטלוק "מטפל" במייל שלי ומשנה את קוד הHTML .