Thema: Delphi NNSMTP in D7 ersetzen

Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2
  Alt 5. Feb 2003, 09:27
Das ist ein fast ungekürzter Ausschnitt aus dem Email-Sender unserer Software. Der macht noch ein bissle mehr, aber das wichtigste solltest Du an dieser Stelle erkennen. Bedenke, dass Email-Attachments nicht zu groß werden sollten.
Delphi-Quellcode:
function TForm1.Send;
var
  I: Integer;
  St, Host, TempFile: AnsiString;
  SMTP: TIdSMTP;
begin
  SMTP := TIdSMTP.Create(nil);
  try
    for I := 0 to Pred(FAttachments.Count) do
      if FileExists(FAttachments.Items[I]) then
        with TIdAttachment.Create(FMsg.MessageParts, FAttachments.Items[I]) do
          ContentType := ''; { DONE : determine content type }
    for I := 0 to Pred(FTo.Count) do
      FMsg.Recipients.Add.Address := FTo[I];
    for I := 0 to Pred(FCC.Count) do
      FMsg.CCList.Add.Address := FCC[I];
    for I := 0 to Pred(FBCC.Count) do
      FMsg.BccList.Add.Address := FBCC[I];
    { TODO : 1
      function TIdMessage.GenerateHeader: TIdHeaderList;
              BCC Empfänger in Unit IDMessage müssen angegeben werden
              nach Indy Update
    }

    FMsg.ContentType := FContentType;
    FMsg.From.Address := FFromEMail;
    FMsg.From.Name := FFromName;
    FMsg.Subject := FSubject;
    if FMsg.MessageParts.TextPartCount = 0 then
      FMsg.SetBody((FText as IASPStringListInt).GetStringList)
    else
      with TIdText.Create(
        FMsg.MessageParts, (FText as IASPStringListInt).GetStringList
      ) do
        ContentType := FContentType;

    SMTP.Host := 'mail.yourhost.com';
    SMTP.Port := 25;
    SMTP.Connect;
    try
      SMTP.Send(FMsg);
    finally
      SMTP.Disconnect;
    end;
  finally
    SMTP.Free;
  end;
end;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat