Einzelnen Beitrag anzeigen

Benutzerbild von Mauli
Mauli

Registriert seit: 7. Apr 2003
Ort: Wuppertal
160 Beiträge
 
Delphi 2005 Enterprise
 
#3

Re: Attachment an E-Mail anhängen

  Alt 24. Jul 2003, 16:10
Ich habe mir eine MailFrame1 gemacht:

Delphi-Quellcode:
unit MailUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Psock, NMsmtp, StdCtrls, ExtCtrls, TS_Utils;

type
  TMailFrame = class(TFrame)
    NMSMTP1: TNMSMTP;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    MailSenden: TButton;
    Label1: TLabel;
    function GetIPAddress: string;
    procedure FrameEnter(Sender: TObject);
    procedure NMSMTP1AuthenticationFailed(var Handled: Boolean);
    procedure NMSMTP1Failure(Sender: TObject);
    procedure NMSMTP1HeaderIncomplete(var handled: Boolean;
      hiType: Integer);
    procedure NMSMTP1InvalidHost(var Handled: Boolean);
    procedure NMSMTP1RecipientNotFound(Recipient: String);
    procedure NMSMTP1SendStart(Sender: TObject);
    procedure NMSMTP1Success(Sender: TObject);
    procedure MailSendenClick(Sender: TObject);
    procedure FrameExit(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

implementation
uses mapi, winsock;

{$R *.DFM}

function TMailFrame.GetIPAddress: string;
var phoste: PHostEnt;
    Buffer: array [0..100] of char;
    WSAData: TWSADATA;
begin
  result:='';
  if WSAStartup($0101, WSAData) <> 0 then exit;
  GetHostName(Buffer, SizeOf(Buffer));
  phoste:=GetHostByName(buffer);
  if phoste = nil then
    result:='127.0.0.1'
  else
    result:=StrPas(inet_ntoa(PInAddr(phoste^.h_addr_list^)^));
    WSACleanup
    
end;


procedure TMailFrame.FrameEnter(Sender: TObject);
begin

end;



// MAILSSENDEN
// SENDEN NCM
procedure TMailFrame.MailSendenClick(Sender: TObject);
begin
  Label1.Caption:='Verbindung zum E-Mail Server wird hergestellt...';
  NMSMTP1.UserID:=Stammnummer;
IF NMSMTP1.Connected=False THEN NMSMTP1.Connect;
NMSMTP1.SendMail;
end;






procedure TMailFrame.FrameExit(Sender: TObject);
begin
IF NMSMTP1.Connected=True THEN NMSMTP1.Disconnect;
end;


// ###################################################
// Meldungen !!!!
// #################################
procedure TMailFrame.NMSMTP1InvalidHost(var Handled: Boolean);
begin
   Label1.Caption:='Host ist ungültig'
end;

procedure TMailFrame.NMSMTP1RecipientNotFound(Recipient: String);
begin
   Label1.Caption:='Empfänger konnte nicht aufgerufen werden'
end;

procedure TMailFrame.NMSMTP1SendStart(Sender: TObject);
begin
  Label1.Caption:='Es wird versucht, die Nachricht zu versenden'
end;

procedure TMailFrame.NMSMTP1Success(Sender: TObject);
begin
   Label1.Caption:='Nachricht konnte erfolgreich zugestellt werden'
end;
procedure TMailFrame.NMSMTP1AuthenticationFailed(var Handled: Boolean);
begin
    Label1.Caption:='Benutzerkennung ist ungültig'
end;

procedure TMailFrame.NMSMTP1Failure(Sender: TObject);
begin
  Label1.Caption:='Nachricht konnte nicht versandt werden'
end;

procedure TMailFrame.NMSMTP1HeaderIncomplete(var handled: Boolean;
  hiType: Integer);
begin
      Label1.Caption:='Es fehlt der Absender bzw. der Empfänger'
end;



end.
Du brauchst halt die NMSMTP1 Komponente dazu.


Diesen Frame fügst du dann in dein Formular ein.

Und da im Quelltext :

Delphi-Quellcode:
with MailFrame1 do
   with NMSMTP1 do
    with PostMessage do
   begin
      // EMPFÄNGER
      ToAddress.Clear;
      ToAddress.ADD('deine@mail.de');

      //FromAddress
      ToBlindCarbonCopy.Clear;
      ToBlindCarbonCopy.Add('@');

      // Anhang Excel- Datei
      Attachments.Clear;
      //Attachments.Add('Datei');
      Subject:='Test';

   end;
   MailFrame1.MailSendenClick(Self);
Vielleicht hilft dir das ja
Angehängte Dateien
Dateityp: zip mail.zip (3,0 KB, 49x aufgerufen)
  Mit Zitat antworten Zitat