Delphi 2009 & Indy 10 email attachments

I am upgrading from Delphi 7 with Indy 9 to Delphi 2009 and Indy 10.

I get Indy to attach a document to a email but the recipient receives a email with the attachment names ATT????.Dat although I attached a PDF file. If the recipient save's this as a PDF file it is the correct file.

How can I get Indy to send the correct attachment name.
MSG.Clear;
        if tbEmPendAttachment.Value <> '' then
        begin
          l_attachment := MailDir + '\' + tbEmPendAttachment.Value;
          TIdAttachmentFile.Create(Msg.MessageParts,l_attachment);
        end;
        if tbEmPendAttachment2.Value <> '' then
        begin
          MailFile := TIdAttachmentFile.Create(Msg.MessageParts,
          tbEmPendAttachment2.Value);
          MailFile.DisplayName := Msg.Subject;
        end;
        MSG.From.Text := Trim(tbEmPendFrom.Value);
        MSG.ReplyTo.EMailAddresses := Trim(tbEmPendFrom.Value);
        MSG.Recipients.EMailAddresses := trim(tbEMPendTo.Value);
        MSG.Subject := tbEmPendSubject.Value;
        MSG.ReceiptRecipient.Text := tbEmPendFrom.Value;
        l_body := TStringList.Create;
        l_body.Text := tbEmPendNote.Value;
        MSG.Body.Assign(l_body);
        l_body.Free;
        SMTP.Send(Msg);

Open in new window

gerhard9121Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

SteveBayCommented:
I had to solve the same issue but I don't remember exactly how I did it. I think it had something to do with AttachmentEncoding.

Try adding this line some where prior to making your attachment.
MSG.AttachmentEncoding  := 'MIME';
0
gerhard9121Author Commented:
Tried adding MSG.AttachmentEncoding  := 'MIME' but it still attaches a ATT?????.Dat
0
SteveBayCommented:
Well it did take a fair amount of trial and error on my part to figure it out.
Also may need to add:
MSG.Encoding := meMIME;
0
HTML5 and CSS3 Fundamentals

Build a website from the ground up by first learning the fundamentals of HTML5 and CSS3, the two popular programming languages used to present content online. HTML deals with fonts, colors, graphics, and hyperlinks, while CSS describes how HTML elements are to be displayed.

gerhard9121Author Commented:
MSG.Encoding := meMIME;

This makes no difference. Any other suggestion please
0
SteveBayCommented:
Have you tried setting:
MailFile.Filename := tbEmPendAttachment2.Value;
0
gerhard9121Author Commented:
I have changed my code but no luck so far
    l_attachment := MailDir + '\' + tbEmPendAttachment.Value;
    MailFile := TIdAttachmentFile.Create(Msg.MessageParts,l_attachment);
    MSG.Encoding := meMime;
    Mailfile.FileName := tbEmPendAttachment.Value;

Open in new window

0
SteveBayCommented:
Sorry, I know I have gone through this same stuff but I cannot remember exactly what solved it for me. If I stumble accross it I will post.
0
gerhard9121Author Commented:
Thanks for your help sofar. I have been battling with this for a couple of days and require a solution urgently
0
gerhard9121Author Commented:
The problem is with the version of Indy10 distributed with Delphi 2009. I downloaded the latest Indy after deleting all older indy file and recompiled Indy. Everything went well but cant load the dclIndyProtocols package. According to Indy it is because I still have old Indy files but I have checked this and still think it is an error in their source code.
0
SteveBayCommented:
When you say "can't load dclIndyProtocols package" - what happens, an error?
When that happens it's usually a problem with the library path
0
gerhard9121Author Commented:
I receive the following errro:

'The procdure entry point @Idheadercoderindy@anitialization&qqrv could not be located in the dynamik link library IndyProtocals120.bplgerhardodendaal
 
0
Mohammed NasmanSoftware DeveloperCommented:
Have you tried the fix here? :
http://blog.digivendo.com/2008/10/fix-indy-mail-attachments-filenames-lost-in-d2009/

also the error you got seems by old version of indy, try to delete indy, and all indy *.bpl from delphi lib and windows system32 folder, then try to install the newer one
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
gerhard9121Author Commented:
As I previously stated the problem was in teh version of Indy distributed with Delph 2009. I loaded the latest version of Indy but could not get the components to load. I bypassed this problem by creating them at runtime.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.