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-ID: 32210887812

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

Ausgedruckt am: 21.11.2024 um 15:11 Uhr

Kuemmel
Lösung Kuemmel 29.03.2024 um 21:31:12 Uhr
Goto Top
Den uralt-Klassiker: Blat Mail
https://www.msxfaq.de/tools/3rdparty/blat.htm
commodity
commodity 29.03.2024 um 21:52:00 Uhr
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
Kuemmel
Kuemmel 29.03.2024 um 21:55:17 Uhr
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
Th0mKa
Th0mKa 29.03.2024 um 21:55:23 Uhr
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
commodity
commodity 29.03.2024 um 22:08:18 Uhr
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
Th0mKa
Th0mKa 29.03.2024 um 22:20:12 Uhr
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
12168552861
Lösung 12168552861 29.03.2024 aktualisiert um 22:52:52 Uhr
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.
commodity
commodity 30.03.2024 um 00:17:51 Uhr
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
Th0mKa
Th0mKa 30.03.2024 um 01:55:26 Uhr
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
12168552861
12168552861 30.03.2024, aktualisiert am 31.03.2024 um 09:49:34 Uhr
Goto Top
Dani
Lösung Dani 30.03.2024 um 15:22:21 Uhr
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
12168552861
12168552861 30.03.2024, aktualisiert am 31.03.2024 um 06:25:31 Uhr
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.

commodity
commodity 30.03.2024 um 22:31:29 Uhr
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
Dani
Dani 31.03.2024 um 09:55:55 Uhr
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
12168552861
12168552861 31.03.2024 aktualisiert um 12:57:53 Uhr
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.
🐣
commodity
commodity 03.04.2024 um 23:11:48 Uhr
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
Dani
Dani 08.04.2024 um 13:50:55 Uhr
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
commodity
commodity 08.04.2024 um 14:53:11 Uhr
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