[DUG] Email/SMTP code
David
delphi at 275a.com
Tue Jul 12 20:26:02 NZST 2011
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-bounces at delphi.org.nz
> [mailto:delphi-bounces at 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 at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20110712/3d297449/attachment.html
More information about the Delphi
mailing list