Entwickler-Ecke

Internet / Netzwerk - [Indy 9] E-Mail mit Anhang weiterleiten?


accessViolation - Mo 04.09.06 17:43
Titel: [Indy 9] E-Mail mit Anhang weiterleiten?
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):


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;



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