AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Email über Outlook Express direkt (ohne Fenster) versenden

Email über Outlook Express direkt (ohne Fenster) versenden

Ein Thema von Helmi · begonnen am 19. Aug 2018 · letzter Beitrag vom 20. Aug 2018
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Email über Outlook Express direkt (ohne Fenster) versenden

  Alt 19. Aug 2018, 18:41
Mit SW_SHOWNORMAL, wie auch mit SW_HIDE wird trotzdem ein Fenster angezeigt
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Email über Outlook Express direkt (ohne Fenster) versenden

  Alt 19. Aug 2018, 18:56
Klappt es so ohne Fenster bei Dir?
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  Outlook, Mailitem: OLEVariant;
begin
  try
    Outlook := GetActiveOleObject('Outlook.Application');
  except
    Outlook := CreateOleObject('Outlook.Application');
  end;
  MailItem := Outlook.CreateItem(0);
  MailItem.Recipients.Add('MaxMuster@mann.de');
  MailItem.Subject := 'Delphi-PRAXiS';
  MailItem.Body := 'Inhalt';
  MailItem.Attachments.Add('C:\TestDatei.txt');
  MailItem.Send;
  Outlook := Unassigned;
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Email über Outlook Express direkt (ohne Fenster) versenden

  Alt 19. Aug 2018, 21:08
Klappt es so ohne Fenster bei Dir?
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  Outlook, Mailitem: OLEVariant;
begin
  try
    Outlook := GetActiveOleObject('Outlook.Application');
  except
    Outlook := CreateOleObject('Outlook.Application');
  end;
  MailItem := Outlook.CreateItem(0);
  MailItem.Recipients.Add('MaxMuster@mann.de');
  MailItem.Subject := 'Delphi-PRAXiS';
  MailItem.Body := 'Inhalt';
  MailItem.Attachments.Add('C:\TestDatei.txt');
  MailItem.Send;
  Outlook := Unassigned;
end;
Delphi-Quellcode:
uses
  ComObj;
fehlt dabei noch.

Unter Windows 10 mit Outlook funktioniert der Code, auf dem WHS (was annähernd Windows Server 2003 ist) mit Outlook Express funktioniert es nicht.
Fehlermeldung: "Ungültiges Klassenzeichenfolge, ProgID: "Outlook.Application"
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#4

AW: Email über Outlook Express direkt (ohne Fenster) versenden

  Alt 19. Aug 2018, 21:20
Outlook.Application ist halt nicht Outlook Express sondern Outlook.

Hilft davon was weiter?
https://social.msdn.microsoft.com/Fo...forum=exceldev
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Email über Outlook Express direkt (ohne Fenster) versenden

  Alt 19. Aug 2018, 22:00
Unter Windows 10 mit Outlook funktioniert der Code, auf dem WHS (was annähernd Windows Server 2003 ist) mit Outlook Express funktioniert es nicht.
Fehlermeldung: "Ungültiges Klassenzeichenfolge, ProgID: "Outlook.Application"
Ohhh, das wusste ich nicht das Microsoft da anders vorgeht. Hmmmm weder ShellExecute noch über OLE klappts.
Nach ein wenig lesen über Express bin ich nicht wirklich schlauer geworden um Deine Anfrage zufrieden stellend beantworten zu können. Es lautet überall ein Nein zum Hintergrund Senden mit der Express.
Da Du eine Console-Application hast die das ja anscheinend kann, frag ich einfach mal nach ob Du die hier hochladen kannst? Da könnte man ja mal reinschauen wie es diese .exe anstellt.

Alternativ auf Indy Mail o.ä..
Gruß vom KodeZwerg

Geändert von KodeZwerg (19. Aug 2018 um 22:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#6

AW: Email über Outlook Express direkt (ohne Fenster) versenden

  Alt 20. Aug 2018, 03:31
Im Zweifel geht auch Blat, Bmail oder ein anderer Kommandozeilen-Mailer.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Email über Outlook Express direkt (ohne Fenster) versenden

  Alt 20. Aug 2018, 04:36
Im Zweifel geht auch Blat, Bmail oder ein anderer Kommandozeilen-Mailer.

Grüße
Dalai
Es muss ja auch eine Möglichkeit mit den Board-eigenen Mitteln geben.
Schließlich kann das die WHS-Konsole ja auch
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
302 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Email über Outlook Express direkt (ohne Fenster) versenden

  Alt 20. Aug 2018, 06:31
Hallo Helmi,

kannst das nicht mit den Indy Komponenten machen? Ich maile mit dieser Routine via SMTP:

Delphi-Quellcode:
    
procedure p_MailSender;
begin
{-------------------------------------------------------------------------------

meine Variablen:

    sMailUser         : String;         // name@domain
    sMailPwd         : String;         // pwd von name@domain
    sMailSender      : String;         // wird nicht benötigt ("im Auftrage von")
    sMailFrom         : String;         // DerGärtner@Domain.de
    sMailRecipients   : String;         // Empfängerliste
    sMailCCList      : String;         // CC Empfängerliste
    sMailBCCList      : String;         // BCC Empfängerliste

    sMailHost         : String;        // Host ID
    iMailPort         : Integer;        // Host Port (25)

   MailMessage.Priority                     := mpNormal;
    sMailSubject      : String;         // Betrefftext
    sMailBody         : String;        // Mail Text
    sMailAttach      : String;        // Dateiname und -Pfad Anlage
-------------------------------------------------------------------------------}

var
   MailMessage                        : TidMessage;
   Anhang                           : TIdAttachment;
begin
   try
      try
         MailMessage                              := TidMessage.Create();   // UM DEM PROBLEM MIT DEN ANHÄNGEN bei zukommen

         MailSmtp.Username                        := sMailUser;            // name@domain
         MailSmtp.Password                        := sMailPwd;            // pwd von name@domain
//         MailMessage.Sender.Address               := sMailSender;         // wird nicht benötigt ("im Auftrage von")
         MailMessage.From.Address               := sMailFrom;            // DerGärtner@Domain.de
         MailMessage.Recipients.EMailAddresses   := sMailRecipients;      // Empfängerliste
         MailMessage.CCList.Clear;
         MailMessage.CCList.EMailAddresses      := sMailCCList;         // CC Empfängerliste
         MailMessage.BCCList.Clear;
         MailMessage.BCCList.EMailAddresses      := sMailBCCList;         // BCC Empfängerliste

         MailSmtp.Host                           := sMailHost;
         MailSmtp.Port                           := iMailPort;

         MailMessage.Priority                     := mpNormal;
         MailMessage.Subject                      := sMailSubject;
         MailMessage.Body.Add(sMailBody);

         // Anhänge: Uses Klausel: IdAttachment, IdMessageParts, IdAttachmentFile;
         // Anhang definieren in:    VAR Anhang : TIdAttachment;
         MailMessage.MessageParts.Clear;
         if sMailAttach <> 'then
            Anhang   := TidAttachmentFile.Create(MailMessage.MessageParts, sMailAttach);

         MailSmtp.Connect;
         MailSmtp.Send(MailMessage);

         MailSmtp.Disconnect(true);

      except
         on E : Exception do // EIdSmptException do //EIdException do
         begin
            Showmessage('Fehler: ' + E.Message);
         end;
      end;
   finally
      // um Fehler zu vermeiden: Mailer abhängen und "alte" Anhänge löschen
      MailSmtp.Disconnect(true);
      MailMessage.MessageParts.Clear;
      MailMessage.Destroy;
      ShowMessage('finally');
   end;

end;
Viel Erfolg!

Rolf
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz