Solved

Using MAPI to send PDF Attachments From Delphi

Posted on 2004-10-17
10
1,094 Views
Last Modified: 2010-04-05
I am using MAPI to send emails from my Delphi App. The Email is constructed and then the Report, which is a PDF file, is attached. This works perfectly from Delphi and up until now I thought was working correctly.

My Problem is that the workstations are using Outlook to send the email. Outlook to Outlook there is no problem but if our customers are using Outlook Express to receive the email the Attachment is stripped. I have tested this to a Web-mail based email and the file is replaced with a winmail.dat file. I have checked and the Outlook is set to send in Plain Text (Not rich text)

Upon viewing the Message source I have noticed this

------=_NextPart_000_0013_01C4B4ED.361F5B50
Content-Type: application/ms-tnef;
      name="winmail.dat"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
      filename="winmail.dat"

Is there a way that I can force the mime encoding of this attachment prior to sending.? Or somehow stop this annoying M$ quirk from happening ??

Thanx

Andy
0
Comment
Question by:andyd70
  • 3
  • 3
  • 3
  • +1
10 Comments
 
LVL 12

Expert Comment

by:Ivanov_G
ID: 12336481
Content-Transfer-Encoding: base64 !!!

Why you are using B64? Probably it is what cause the problem. Date if to HDD and open it with Notepad. Inside you should see the original file name as well as the encoded file content...
0
 
LVL 1

Author Comment

by:andyd70
ID: 12336502
Thanks for the relpy.
I don't actually specify the encoding. It does it by default MAPI Client I think ? So how do I stop this ? I can't seem to find the property to set. I need to be able to do this automatically so that our customers receive the file regardless of the email client they are using.

0
 
LVL 12

Expert Comment

by:Ivanov_G
ID: 12336547
Well, for MAPI - I don't know. With Indy components TidSMTP, TidMessage, TidAttachment you can send emails without any problems...
0
Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

 
LVL 31

Accepted Solution

by:
moorhouselondon earned 500 total points
ID: 12336614
You obviously know about the TNEF problem, the attached link seems to be M$'s definitive answer on this issue

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q241/5/38.ASP&NoWebContent=1

I'm sure, by using Indy you can bypass the problem as suggested by Ivanov_G.  Presumably you would need to CC the sender so that they receive a copy of the email that has been sent on their behalf.
0
 
LVL 1

Author Comment

by:andyd70
ID: 12336749
Yeah I know I can use Indy (and I used to) but with Mapi the Files are put in the Sent Items of the Default mail client. Handy when it comes to resending the reports. But if that is my option i guess i have to take that approach. For 1000 pts why does M$ make things so bloody difficult ???
0
 
LVL 12

Expert Comment

by:Ivanov_G
ID: 12336797
> "with Mapi the Files are put in the Sent Items of the Default mail client"

This is good point, so I think for now you should stick to MAPI. Probably you are sending the mails from a PC where Outlook is installed. Maybe it has some encoding options set, which are not supported in Outlook Express ?!
0
 
LVL 31

Expert Comment

by:moorhouselondon
ID: 12341154
The link I posted has references to MS Exchange - if the host system uses Exchange then this can affect outgoing emails too - depending on what's configured there.

On the Sent Items issue - can a Message Rule plonk the message into Sent?  
0
 
LVL 1

Author Comment

by:andyd70
ID: 12365676
I accepted moorehouslondons answer although I did already try Indy but as I said I need it to be in the users sent items. However he did bring up the exact problem I am trying to get around (which I had found out previously).
Surely there must be a work around this. back to the drawing board I guess.
0
 
LVL 31

Expert Comment

by:moorhouselondon
ID: 12367126
Thank you for the points.

Maybe Component Obect Model is the answer.  Get Delphi to send the email using Indy, then use COM techniques to put the message into Outlook's Sent box?
0
 

Expert Comment

by:edol278
ID: 20901048
if you look inside the email, you'll probably see that the attachment is there,
do you get an winmail.dat file also ?

if so, in MAPI , set the address to nil, and put the email address in the name field

      Receip.lpszAddress := nil;  // this one prevents winmail.dat
      Receip.lpszName :=    --> put the email adress here

wkg
Orca
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Communication Between RC4 Delphi <-> PHP 3 123
Delphi XE10 Round Image 2 154
Strange behavior when a form is closed 6 60
CheckListBox usage 3 71
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

789 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question