Autor Beitrag
accessViolation
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 68

Win
Delphi 5 Enterpr.
BeitragVerfasst: Mo 04.09.06 17:43 
Hallo!

Ich möchte erreichen, dass eine E-Mail eins-zu-eins weitergeschickt wird.

Problem: Eine von Thunderbird verschickte Mail (mit Datei-Ahnang) empfange ich mit folgendem Code und leite sie weiter (hier mal der wesentliche Code):

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.SMTPServerReceiveMessageParsed(ASender: TIdCommand;
  var AMsg: TIdMessage; RCPT: TIdEMailAddressList;
  var CustomError: String);

var c:           integer;
    attFileName: string;
    randNumber:  integer;
    IdSMTP:      TIdSMTP;
begin

  //...

  ForwardToForeignServer(AMsg);

end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.ForwardToForeignServer(AMsg: TIdMessage);
var
  IdSMTP: TIdSMTP;

begin
  AMsg.NoEncode := true;   // verhindert, dass der Anhang (MessageParts) mitgeschickt wird
                           // wenn ich aber NoEncode auf false setze, ist der Anhang codiert...
  IdSMTP := TIdSMTP.Create(nil);
  IdSMTP.Host := '192.168.0.138';
  IdSMTP.Port := 25;
  IdSMTP.Username := 'username';
  IdSMTP.OnDisconnected := IdSMTPDisconnected;
  IdSMTP.Connect;
  try
    IdSMTP.Send(AMsg);
  finally
    IdSMTP.Disconnect;
    FreeAndNil(IdSMTP);
  end;

end;


Die E-Mail wird verschickt, allerdings ohne Anhang. Die Indy-Hilfe sagt, dass TIdMessage.NoEncode := true dazu führt, dass Anhänge nicht mitgeschickt werden: "Note: When NoEncode is True, other message parts for the message are not sent by the message client."
Wenn ich NoEncode auf false setze, ist der Anhang dabei, aber vermutlich in codierter Form, so wie der Inhalt der Datei dann aussieht.

Meine Frage: Wie kann ich eine mit TIdSMTPServer empfangene E-Mail + Dateianhang eins-zu-eins weiterleiten?

Viele Grüße
Dietmar