Solved

Delphi / Indy. Problem with sending email with attachments

Posted on 2010-09-08
4
1,560 Views
Last Modified: 2012-06-21
Good Day

I am having trouble with sending out emails with a pdf attachments. I am using wpdf to generate the pdf documents.

I create entries into a table and then I read one by one from the table and send the emails out with the attachments. Sometimes I can send 20 emails with the pdf attachment and I works 100%, but other times I get the emails with the following error : "Disposition: attachment".

I have included the body of the email.

Please advice what the problem is and how can I solve this. EMail-body.txt
0
Comment
Question by:henryreynolds
  • 2
  • 2
4 Comments
 
LVL 5

Accepted Solution

by:
briangochnauer earned 500 total points
ID: 33627532
Try the code below; works for me on tens of thousands of clients it's running on.
function SendMailResults(const email:String):boolean;
var sendfile :string;
    IdSMTP1  : TIdSMTP;
    SentMsg  : TIDMessage;
    Attachment : TIdAttachmentfile;
    base :string;
const CRLF : string = #10#13;
begin

    IdSMTP1 := TIdSMTP.Create(self);
    Name := 'IdSMTP1';
    idSMTP1.Host := emailSMTPHost; //like '10.105.0.0';
    SentMsg := TIDMessage.Create(nil);

    with SentMsg do
      begin
        IsEncoded := True ;
        Encoding := meMIME;
        Subject :=  'PDF';
        Body.Add('PDF attached');
        From.address := emailSMTPFrom;//'ed at mail dot nl';
        Recipients.EMailAddresses := email;//'jk at them dot nl';
      end;

    sendfile := 'c:\yourfile.pdf';
    if FileExists(SendFile) then
     begin
       Attachment := TIdAttachmentfile.Create(SentMsg.MessageParts,SendFile);
//      Attachment.ContentDisposition := 'attachment';
//      Attachment.ContentType := 'text/xml';
       Attachment.FileName := SendFile;
     end;

  try
    try
      idSMTP1.Connect;
      idSMTP1.Send(SentMsg) ;
    except on E:Exception do
      ShowMessage('ERROR: ' + E.Message);
    end;
  finally
    if idSMTP1.Connected then idSMTP1.Disconnect;
  end;
end;

Open in new window

0
 

Author Comment

by:henryreynolds
ID: 33644204
Hi

I have tried your example but I still get sometimes the same error message.

Please help
0
 
LVL 5

Expert Comment

by:briangochnauer
ID: 33645621
I would check the smtp server for errors or maybe your client is decoding the message incorrectly.
Your 'email-body.txt' file reminds me of client side problems I have had.
0
 

Author Closing Comment

by:henryreynolds
ID: 33768640
done
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

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

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
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…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

773 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