I think from memory that was to do with the SMTP component being already
connected to another server. Must have been a good reason at the time...

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On Behalf Of David
Sent: Tuesday, 12 July 2011 8:26 p.m.
To: delphi@delphi.org.nz
Subject: Re: [DUG] Email/SMTP code

 

Erm...
I understand your code works, but you probably want to remove this bit. 
The RFC doesn't require a pause

        t := now ;

        while (SMTP.Connected) and

          (now < t + 10 * (1/86400)) do // 10 Seconds

          sleep(10) ;

Also, to get around the mailservers that block you ( e.g. when they
don't know you, or think you're a spam bot)
just relay the message through your own ISP
e.g. if you're with orcon, use mail.orcon.net.nz, if you're with ihug,
use their smtp server...
As long as you have the correct destination email addresses (and aren't
in fact writing a spam bot), the big mail servers can do the work for
you

David

On 12/07/2011 2:01 p.m., David O'Brien wrote: 

Wrote this a while ago, but still works...

 

procedure SendEmail(msgFrom, msgTo, msgSubject: String; msgBody:
TStringList; Attachments: TStringList) ;

var

  IdMessage: TIdMessage;

  SMTP: TIdSMTP;

  t: TDateTime ;

  i: Integer ;

begin

  try

    if ASettings.SMTPServer <> '' then

    begin

      SMTP := TidSMTP.Create(nil) ;

      IdMessage := TIdMessage.Create(SMTP);

      try

        idMessage.Clear ;

        idMessage.From.Address := msgFrom ;

        idMessage.Recipients.Add.Address := msgTo ;

        idMessage.Subject := msgSubject ;

        if pos('<html', lowercase(msgBody.Text)) <> 0 then

          idMessage.ContentType := 'text/html' ;

        if msgBody <> nil then

          IdMessage.Body.Assign(msgBody) ;

        t := now ;

        while (SMTP.Connected) and

          (now < t + 10 * (1/86400)) do // 10 Seconds

          sleep(10) ;

        if Assigned(Attachments) then

          for i := 0 to pred(Attachments.Count) do

            TIdAttachmentFile.Create(IdMessage.MessageParts,
Attachments[i]) ;

        SMTP.Host := ASettings.SMTPServer ;

        SMTP.Port := ASettings.SMTPPort ;

        SMTP.Username := ASettings.Username ;

        SMTP.Password := ASettings.Password ;

        SMTP.Connect ;

        try

          SMTP.Send(idMessage) ;

        finally

          SMTP.Disconnect ;

        end ;

      finally

        SMTP.Free ;

        IdMessage.Free ;

      end;

    end;

  except

    EmailFailed := True ;

  end ;

end ;

 

From: delphi-boun...@delphi.org.nz [mailto:delphi-boun...@delphi.org.nz]
On Behalf Of John Bird
Sent: Tuesday, 12 July 2011 1:47 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Email/SMTP code

 

Anyone got a recommendation for the best (free) code/samples to drive
Indy10 for sending an email with attachment

 

-Indy10.2.3

-Send attachment

-SMTP server and email addresses will be known

 

I have tried a couple (eg AtoZed SendMail example) but it seems to time
out connecting to the SMTP 

 

John

 



__________ Information from ESET Smart Security, version of virus
signature database 6285 (20110711) __________

The message was checked by ESET Smart Security.

http://www.eset.com



 
 
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject:
unsubscribe
 
 
__________ Information from ESET Smart Security, version of virus
signature database 6285 (20110711) __________
 
The message was checked by ESET Smart Security.
 
http://www.eset.com
 

 

_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Reply via email to