commodity
Goto Top

Windows - Mail von CMD oder Powershell?

Hallo Kollegen,
insbesondere diejenigen, die unter MS scripten:

Mailt ihr über die Windows-Kommandozeile?
Wenn ja, wie? Wenn nein, warum nicht?

Unter Linux lasse ich mich von Diensten bei Bedarf gern auch per Mail informieren. Das Ergebnis vom Backup, der Start oder Stop eines Dienstes, Ausfälle, SMART-Prüfungen, Eindringversuche, was auch immer.
Logging ist was feines, Monitoring ebenso, in manchen Fällen ist eine Mail aber (eigentlich) der einfachste Weg, auch zur Information für den Kunden.

Unter Linux gibt es diverse Lösungen dafür, die zügig eingerichtet sind und zuverlässig funktionieren.
Unter Windows gibt es

1. Send-MailMessage (PowerShell, überholt und unzuverlässig)
2. https://github.com/jstedfast/MailKit (von MS als Nachfolger empfohlen, Open Source setzt VS-Installation voraus)
3. Die hier gelisteten Tools: https://whatsoftware.com/sending-email-using-command-line-useful-for-dow ... (teils recht betagt und/oder Closed Source)

Noch mehr?

Was davon setzt Ihr ein und warum?

Viele Grüße, commodity

Content-Key: 32210887812

Url: https://administrator.de/contentid/32210887812

Printed on: April 28, 2024 at 22:04 o'clock

Member: Kuemmel
Solution Kuemmel Mar 29, 2024 at 20:31:12 (UTC)
Goto Top
Den uralt-Klassiker: Blat Mail
https://www.msxfaq.de/tools/3rdparty/blat.htm
Member: commodity
commodity Mar 29, 2024 at 20:52:00 (UTC)
Goto Top
Ha, auf msxfaq hätte ich auch kommen können face-big-smile
Danke Dir.

Kleines Aber:
Current version: Blat v3.2.1 (build : May 28 2014 00:35:28)

Würde ich jetzt nicht so direkt auf nem Kundenserver einsetzen wollen face-big-smile

Viele Grüße, commodity
Member: Kuemmel
Kuemmel Mar 29, 2024 at 20:55:17 (UTC)
Goto Top
Ja, ist steinalt.. kenne es auch nur von früher.. face-smile
Ich kenne einen Anwendungsfall bei einem Bekannten, der macht das per Send-MailMessage wie bereits oben von dir angesprochen.. der Rest läuft über Monitoring
Member: Th0mKa
Th0mKa Mar 29, 2024 at 20:55:23 (UTC)
Goto Top
Zitat von @commodity:
Würde ich jetzt nicht so direkt auf nem Kundenserver einsetzen wollen face-big-smile

Warum nicht? Nur weil das Compiledatum neuer ist ist die Software ja nicht besser?!

/Thomas
Member: commodity
commodity Mar 29, 2024 at 21:08:18 (UTC)
Goto Top
Warum nicht?
Dein Ernst?
Habe mal gelernt, dass Software gepflegt werden sollte face-smile
Ein Mailtool ist jetzt vielleicht nicht so security-Relevant, aber wenn was nicht gepflegt wird, kann es beim nächsten Update ausfallen und ich schaue in die Röhre.
Wüsste auch nicht so recht, was Kunde und/oder Versicherung sagen, wenn das Tool nun doch unsicher war face-wink

Viele Grüße, commodity
Member: Th0mKa
Th0mKa Mar 29, 2024 at 21:20:12 (UTC)
Goto Top
Zitat von @commodity:

Warum nicht?
Dein Ernst?
Habe mal gelernt, dass Software gepflegt werden sollte face-smile
Ein Mailtool ist jetzt vielleicht nicht so security-Relevant, aber wenn was nicht gepflegt wird, kann es beim nächsten Update ausfallen und ich schaue in die Röhre.
Wüsste auch nicht so recht, was Kunde und/oder Versicherung sagen, wenn das Tool nun doch unsicher war face-wink

Viele Grüße, commodity

Die neueste Version ist 2 Jahre alt, wenn dir danach ist kannst du es auch aus dem Sourcecode selbst kompilieren. Den kannst du natürlich auch auditieren wenn es dir wichtig ist.

https://sourceforge.net/projects/blat/files/

/Thomas
Mitglied: 12168552861
Solution 12168552861 Mar 29, 2024 updated at 21:52:52 (UTC)
Goto Top
Zitat von @commodity:
2. https://github.com/jstedfast/MailKit (von MS als Nachfolger empfohlen, Open Source setzt VS-Installation voraus)
Nein braucht kein VS, läuft auch portable, ohne Installation !
Brauchst nur das Assembly und die Dependency DLLs runterladen und nacheinander mit Add-Type in die Session laden
https://www.nuget.org/packages/MailKit#dependencies-body-tab

Gruß pp.
Member: commodity
commodity Mar 29, 2024 at 23:17:51 (UTC)
Goto Top
@Th0mKa
Die neueste Version ist 2 Jahre alt, wenn dir danach ist kannst du es auch aus dem Sourcecode selbst kompilieren. Den kannst du natürlich auch auditieren wenn es dir wichtig ist.
1. Das war nicht die Frage
2. http://www.blat.net/ spricht von Versionsstand 2014. Wenn auf SourceForge ein neueres Datum angezeigt ist, was sagt das? Neu hochgeladen oder Code geändert? Oder gar anderer Entwickler?
3. Würde mich in diesem Falle geradezu verstören, wenn ein Admin auf einem produktiven Server solche Tools einsetzt.

@puderpader
Danke Dir.

Setzt Du das ein?

Viele Grüße, commodity
Member: Th0mKa
Th0mKa Mar 30, 2024 at 00:55:26 (UTC)
Goto Top
Zitat von @commodity:
2. http://www.blat.net/ spricht von Versionsstand 2014. Wenn auf SourceForge ein neueres Datum angezeigt ist, was sagt das? Neu hochgeladen oder Code geändert? Oder gar anderer Entwickler?

Da die von dir genannte Website auf die Sourceforge Seite verlinkt beunruhigt mich das jetzt eher nicht.

But you do you. 🤷‍♂️

/Thomas
Mitglied: 12168552861
12168552861 Mar 30, 2024, updated at Mar 31, 2024 at 07:49:34 (UTC)
Goto Top
Member: Dani
Solution Dani Mar 30, 2024 at 14:22:21 (UTC)
Goto Top
Moin,
Was davon setzt Ihr ein und warum?
keines der drei Möglichkeiten. Wir haben mit New-Object System.Net.Mail.SmtpClient und New-Object System.Net.Mail.MailMessage eine Funktion geschrieben. Um so auf jede Anforderung und Rahmenbedingung reagieren zu können (Auth Ja/Nein, Port 587/465, TLS JA/Nein, StartTLS Ja/Nein, Anhänge Ja/Nein, etc.).


Gruß,
Dani
Mitglied: 12168552861
12168552861 Mar 30, 2024, updated at Mar 31, 2024 at 04:25:31 (UTC)
Goto Top
Zitat von @Dani:

Moin,
Was davon setzt Ihr ein und warum?
keines der drei Möglichkeiten. Wir haben mit New-Object System.Net.Mail.SmtpClient und New-Object System.Net.Mail.MailMessage eine Funktion geschrieben. Um so auf jede Anforderung und Rahmenbedingung reagieren zu können (Auth Ja/Nein, Port 587/465, TLS JA/Nein, StartTLS Ja/Nein, Anhänge Ja/Nein, etc.).
Der SMTP Client kann aber genauso wie Send-Mailmessage (der darauf basiert) kein SSL ohne STARTTLS somit kein plain SSL auf Port 465.
https://learn.microsoft.com/de-de/dotnet/api/system.net.mail.smtpclient. ...

Die SmtpClient -Klasse unterstützt nur die SMTP-Diensterweiterung für Secure SMTP over Transport Layer Security, wie in RFC 3207 definiert. In diesem Modus beginnt die SMTP-Sitzung in einem unverschlüsselten Kanal, dann wird vom Client ein STARTTLS-Befehl an den Server ausgegeben, um zur sicheren Kommunikation mithilfe von SSL zu wechseln. Weitere Informationen finden Sie unter RFC 3207, veröffentlicht von der Internet Engineering Task Force (IETF).

Bei einer alternativen Verbindungsmethode wird vorab eine SSL-Sitzung eingerichtet, bevor Protokollbefehle gesendet werden. Diese Verbindungsmethode wird manchmal als SMTP/SSL, SMTP über SSL oder SMTPS bezeichnet und verwendet standardmäßig Port 465. Diese alternative Verbindungsmethode mit SSL wird derzeit nicht unterstützt.

Wenn die EnableSsl -Eigenschaft auf true festgelegt ist und der SMTP-E-Mail-Server in der Antwort auf den EHLO-Befehl nicht STARTTLS angibt, löst ein Aufruf der Send -Methode oder SendAsync eine SmtpException aus.

Member: commodity
commodity Mar 30, 2024 at 21:31:29 (UTC)
Goto Top
Danke @Dani,
das ist natürlich eine sehr elegante Lösung face-smile
Wenn das OpenSource ist, könntest Du es ja vielleicht im Forum mal darstellen?

Viele Grüße, commodity
Member: Dani
Dani Mar 31, 2024 at 07:55:55 (UTC)
Goto Top
Moin @commodity,
Wenn das OpenSource ist, könntest Du es ja vielleicht im Forum mal darstellen?
das ist leider nicht mehr möglich. Das letzte Mal als ich ein Skript meines AG hier eingestellt habe, haben wir es in einem kostenpflichtigen Fremdprodukt wieder gefunden, ohne Info, Kennzeichnung o.ä.


Gruß,
Dani
Mitglied: 12168552861
12168552861 Mar 31, 2024 updated at 10:57:53 (UTC)
Goto Top
Wie schon geschrieben Send-MailMessage basiert auf der selben Technik des NET Framework und nutzt auch die Klasse System.Net.Mail.SmtpClient. Beide haben die gleichen Einschränkungen wie oben beschrieben.
Wenn du also keine weiteren Anforderungen hast kannst du auch bei Send-Mailmessage bleiben sofern du in deinen Anwendungen kein SMTP via SSL sondern nur STARTTLS für verschlüsselte Verbindungen nutzt.
Brauchst du mehr wie etwa SSL ohne STARTTLS, OAuth-Authentifizierung, SMIME Signing & Encryption Support&Co. würde ich auf Mailkit umsteigen.

Zum Thema STARTTLS aber unbedingt lesenwert:

Gruß pp.
🐣
Member: commodity
commodity Apr 03, 2024 at 21:11:48 (UTC)
Goto Top
Danke pp, ist verstanden. Werde mir Mailkit anschauen, denke aber, ich werde das mal mit Python scripten. Das ist dann universeller und nicht so abhängig von einem Einzelprojekt.

@Dani: Loslassen ist doch das Kennzeichen von OpenSource face-smile Natürlich so nicht schön, aber kein Grund, nicht zu teilen. Wenn man jede gute Tat daran misst, dass sie schon mal von anderen missbraucht wurde, würde es wohl keine guten Tagen mehr geben.

Danke für Eure Beiträge!

Viele Grüße, commodity
Member: Dani
Dani Apr 08, 2024 at 11:50:55 (UTC)
Goto Top
@commodity
Loslassen ist doch das Kennzeichen von OpenSource face-smile Natürlich so nicht schön, aber kein Grund, nicht zu teilen. Wenn man jede gute Tat daran misst, dass sie schon mal von anderen missbraucht wurde, würde es wohl keine guten Tagen mehr geben.
Alles gut rund recht. Schlussendlich ist das Sache meines AG und ggf. deshalb eine Abmahnung zu erhalten, ist es mir nicht Wert. Natürlich ist es schade, aber jedes Verhalten hat eben auch Konsequenzen. Was leider einige Leute erst lernen, wenn es weh tut.


Gruß,
Dani
Member: commodity
commodity Apr 08, 2024 at 12:53:11 (UTC)
Goto Top
Schlussendlich ist das Sache meines AG
Das ist klar und ich wollte es auch nicht gegenteilig ausdrücken. Man kann nur dort etwas tun, wo man es auch darf - und das tust Du hier im Forum bereits vorbildlich und beständig.

Viele Grüße, commodity