AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy SMTP/Indy Message hat Probleme mit großen Emails ?!
Thema durchsuchen
Ansicht
Themen-Optionen

Indy SMTP/Indy Message hat Probleme mit großen Emails ?!

Ein Thema von Nighthawk1310 · begonnen am 1. Sep 2006 · letzter Beitrag vom 2. Sep 2006
 
Benutzerbild von Nighthawk1310
Nighthawk1310

Registriert seit: 22. Feb 2004
Ort: Izmir / Türkei
45 Beiträge
 
Delphi 7 Enterprise
 
#1

Indy SMTP/Indy Message hat Probleme mit großen Emails ?!

  Alt 1. Sep 2006, 11:31
Habe in einem meiner Programme einen Email-Part und beim Erstellen der eigentlichen
Mail, genauer beim Hinzufügen von Anhängen (jenseits 30 MB) gibt es merkliche
Einbußen in der Geschwindigkeit. Das Program steht wie eine Salzsäule und ackert.
Aktuell habe ich einen Anhang von 39MB Größe und er braucht mehr als 15 min.

Ein Thread kommt auch nicht in Frage, da zum Zeitpunkt des "Eintütens" der Benutzer
eh nichts machen soll. Es ist halt nur diese lange Zeit die er dafür braucht.

Das System:
Dual Pentium Xeon 3.06 GHz
4 GB RAM
200 GB Harddisk.

Also am System sollte es nicht liegen. Hat jemand schonmal diese
Erfahrung mit der Indy SMTP Komponente gemacht?

Gruß und danke im Voraus für irgendeinen Hinweis.
Nighthawk1310

Hier noch meine Routine zum Vorbereiten der Email.

Delphi-Quellcode:
function TfrmSearch.BuildMail: Integer;
 var iCount: Integer;
     sReceipientsAddresses : WideString;
     iCutPos, ReceipientCount : Integer;
     MS : TMemoryStream;
begin
 msgSend.Clear;

     try
       //Setup MailBody
       with TIdText.Create(msgSend.MessageParts, memoText.Lines) do
            begin
            ContentType := 'text/plain';
            end;

       msgSend.Body.Assign(memoText.Lines);

       //Setup MailAttachments
       if lstMA.Count > 0 then
          begin
          msgSend.ContentType := 'multipart/mixed';

          for iCount := 0 to lstMA.Count -1 do
              TIdAttachmentFile.Create(msgSend.MessageParts, lstMA.Items[iCount]);
          end;

       //Setup Sender
       msgSend.From.Text := frmPanel.xUser.sMailAdr;
       msgSend.ReplyTo.EMailAddresses := frmPanel.xUser.sMailAdr;

       //Setup Receipients
       //vst ist ein VirtualTreeView
       sReceipientsAddresses := PrepareReceipients(txtTo.Text, vst, ReceipientCount);

       if ReceipientCount = 1 then
          msgSend.Recipients.EMailAddresses := sReceipientsAddresses
       else
          begin
          iCutPos := Pos(';', sReceipientsAddresses);
          msgSend.Recipients.EMailAddresses := Copy(sReceipientsAddresses, 1, iCutPos - 1);
          msgSend.BccList.EMailAddresses := Copy(sReceipientsAddresses, iCutPos + 1, Length(sReceipientsAddresses));
          end;

       msgSend.CCList.EMailAddresses := '';
       
       //Setup Subject
       msgSend.Subject := txtSubject.Text;

       //Setup Priority
       msgSend.Priority := TIdMessagePriority(2);

       //Calculate Size

       MS := TMemoryStream.Create;
       msgSend.SaveToStream(MS); //Könnte er hier solange brauchen?

       msgSend.Tag := MS.Size;

       Result := msgSend.Tag;

     finally
        MS.free;
        if msgSend.Tag = 0 then
           Result := -1;
     end;
end;
und auch noch die function zum Senden der fertigen Email

Delphi-Quellcode:
function TfrmSearch.SendMail(Email : TIDMessage) : Boolean;
begin
    result := False;

    //Username and Password
    SMTP.Username := frmPanel.xUser.sMailUser;
    SMTP.Password := frmPanel.xUser.sMailPass;

    //Host and Port
    SMTP.Host := frmPanel.xUser.sSmtp;
    SMTP.Port := 25;

    //Sending
    bSending := True; //Hier sage ich das ich beim Senden bin. wird im Disconnect
                      //der SMTP Kompo abgefragt
    SMTP.Connect;
    try
       SMTP.Send(Email);
       bSending := False;
       
       SMTP.Disconnect;
       result := True;
    except
       result := False;
       bSending := False;
       SMTP.Disconnect;
    end;
end;
Angehängte Grafiken
Dateityp: jpg fehler_743.jpg (160,2 KB, 18x aufgerufen)
Michael
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz