Mail per Skript via SMTP innerhalb einer Netcup-Domain verschicken

  • Hi, ich versuche von einem Windows-Server per Skript Mails zu versenden, falls bei einem automatisierten Backup Fehler auftreten. Nicht ganz trivial ...


    >> beispielhaft << per Powershell:

    Code
    <schnipp>
    $pw = Get-Content .\MailSendCreds.txt | ConvertTo-SecureString$cred = New-Object System.Management.Automation.PSCredential $sender, $pwSend-MailMessage `    -To "alert@<meine-netcup-domain>" `    -Subject "Error!" `    -Body "Hier steht eine Fehlermeldung" `    -SmtpServer "mxf993.netcup.net" `    -From "Backup <backup@<meine-netcup-domain>>" `    -Encoding ([System.Text.Encoding]::UTF8) `    -Credential $cred `    -UseSsl `    -Port 587
    <schnapp

    Gibt eine Fehlermeldung:

    Wenn ich den Code variiere bekomme ich solches ...

    Zitat

    # Send-MailMessage : Fehler bei Transaktion. Die Serverantwort war:
    # 5.7.1 <ip-109-xx-xx-xx.hsi12.unitymediagroup.de[109.xx.xx.xx]>: Client host rejected: Access denied
    # 5.7.1 Service unavailable; Client host [109.xx.xx.xx] blocked using zen.spamhaus.org; https://www.spamhaus.org/query/ip/109.xx.xx.xx

    Ich muss irgendwas anders machen, per Mailclient funktioniert das Ganze ja. Kann mir jemand einen Tipp geben?


    Viele Grüße,

    Michel

  • die 2te Fehlermeldung ist logisch; die IP-Ranges bzw. die IPv6-Prefixe von Internetzugängen sind üblicherweise in sogenannten Sperrlisten

    z.B. spamhaus;

    die Authentification am SMTP-Server scheint nicht zum Tragen zu kommen ..., der scheint des direkt absetzen zu wollen;

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

  • Kannst du das bitte einmal Übersichtlich schreiben? Einzeller sind zwar nett, aber sch.... bei der Fehleranalyse.

    Ich habe bei mir auch ein einfaches PSScript zum testen. Das ist die Send Zeile:

    Code
    Send-MailMessage -From $MailFrom -To $MailTo -Subject $MailSubject -Body $MailBody -Port $SMTPPort -Credential $EmailCredential  -UseSsl

    Die Datei mit dem Password wurde halt schon vorher erstellt und liegt in dem Verzeichnis.

    Nicht das PS mit den Hochkommatas usw. Probleme hat.

  • ich hab das mal bei meinem Win10 gegen meinen Postfix gemacht

    Code
    $secpasswd = ConvertTo-SecureString "password" -AsPlainText -Force
    $cred = New-Object System.Management.Automation.PSCredential ("user", $secpasswd)
    Send-MailMessage -From EMAIL -Subject TestSubject -To EMAIL -Body TestBody -SmtpServer SERVER -Port 25 -UseSsl -Credential $cred

    Mail kommt an, aber maillog zeigt das

    Code
    postfix/smtpd[4594]: warning: Win10PC[IPv6]: SASL login authentication failed: authentication failure

    und das obwohl das im Skript angegebene UserId/Passwort-Gespann ident mit dem ist, was ich zur Anmeldung mittels Thunderbird verwende ...

    wo liegt hier der Pferdefuß, dann ist auch das Problem vom OP gelöst ...


    hab hier was interessantes zu dem gefunden

    https://stackoverflow.com/ques…ommand-for-sending-emails

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

  • Hm, ich versende über 587 (auch eigener Postfix) und User/Password sieht gut aus im Log. Mail kommt auch an.
    Mein Script ist so ähnlich wie hier im Blog.

    Ich habe halt die Datei vorher einmal erstellt gehabt und das wars.

    Du kannst einmal mit so einem einfachen Script das ganze testen und dann darauf aufbauen.

  • Eine sehr einfache Alternative, die ich einfach mal in den Raum werfen möchte:

    - Mailversand mittels curl Api über einen Dienstleister wie Sparkpost (ist in einem gewissen Rahmen dort kostenlos!)


    Das ist das tatsächlich n recht übersichtlicher Einzeiler (kann meine Vorlage [deren Doku bietet oder bot immer nur Schnipsel an] gerne zur Verfügung stellen). Auch ist das Einrichten über deren Webinterface sehr schlicht und einfach gehalten.

  • @03simon10 cURL ist Linux Welt, Powershell ist Windows Welt ;)

    mit Linux würd ich ja gleich direkt sendmail -f frommail tomail < mail.text machen und hätt Postfix so getrimmt,

    dass er sich am SMTP authentifiziert :P

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

  • mainziman Ich kenn mich mit Powershell nicht aus, aber dort wird man doch auch unkompliziert n POST Befehl rauskriegen, oder? Das schafft selbst mein iPhone, nativ, ohne Drittanbieterapps.


    Das schöne am der API ist ja eben, dass auf meinem Server nichts außer mein Skript laufen muss.

  • Das schöne an der API ist ja eben, dass auf meinem Server nichts außer mein Skript laufen muss.

    klar nur ohne den im Skript verwendeten externen Commands geht halt gar nix;

    mit Powershell brauchst diese gleich gar nicht;:P

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

  • Grmmpf, es lag an der Datei, in der der secure string für das Passwort liegt. Powershell hat nicht gemeckert, ich habe es nicht bemerkt. Anbei der jetzt funktionierende Code:



    Vielen Dank für Eure Unterstützung, das hat mir auf die richtige Spur geholfen!!


    Viele Grüße,

    Michel