h41msh1c0r
Goto Top

Via Powershell eine Mail verschicken über Exchange

Hi@All,

nettes Cmdlet

function Send-SMTPmail($to, $from, $subject, $body, $attachment, $cc, $bcc, $port, $timeout, $smtpserver, [switch] $html, [switch] $alert) {
    if ($smtpserver -eq $null) {$smtpserver = "smtp.myserver.com"}  
    $mailer = new-object Net.Mail.SMTPclient($smtpserver)
    if ($port -ne $null) {$mailer.port = $port}
    if ($timeout -ne $null) {$mailer.timeout = $timeout}
    $msg = new-object Net.Mail.MailMessage($from,$to,$subject,$body)
    if ($html) {$msg.IsBodyHTML = $true}
    if ($cc -ne $null) {$msg.cc.add($cc)}
    if ($bcc -ne $null) {$msg.bcc.add($bcc)}
    if ($alert) {$msg.Headers.Add("message-id", "<3bd50098e401463aa228377848493927-1>")}  
    if ($attachment -ne $null) {
        $attachment = new-object Net.Mail.Attachment($attachment)
        $msg.attachments.add($attachment)
    }
    $mailer.send($msg)
}


send-SMTPmail -to max@test.de -from max@test.de -subject "Congratulations!" -smtpserver "domain.de" -body "test"  

Jetzt kann ich bei smtp Server eintragen was ich will. Entweder kann er den Namen nicht auflösen oder er wirft einen Fehler:

************** Ausnahmetext **************
System.Management.Automation.MethodInvocationException: Ausnahme beim Aufrufen von "Send" mit 1 Argument(en):  "Fehler beim Senden von Mail." ---> System.Net.Mail.SmtpException: Fehler beim Senden von Mail. ---> System.IO.IOException: Von der Übertragungsverbindung können keine Daten gelesen werden: net_io_connectionclosed.  
   bei System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte buffer, Int32 offset, Int32 read, Boolean readLine)
   bei System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
   bei System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
   bei System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
   bei System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port)
   bei System.Net.Mail.SmtpClient.GetConnection()
   bei System.Net.Mail.SmtpClient.Send(MailMessage message)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Net.Mail.SmtpClient.Send(MailMessage message)
   bei Send(Object , Object )
   bei System.Management.Automation.MethodInformation.Invoke(Object target, Object arguments)
   bei System.Management.Automation.DotNetAdapter.AuxiliaryMethodInvoke(Object target, Object arguments, MethodInformation methodInformation, Object originalArguments)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Management.Automation.DotNetAdapter.AuxiliaryMethodInvoke(Object target, Object arguments, MethodInformation methodInformation, Object originalArguments)
   bei System.Management.Automation.DotNetAdapter.MethodInvokeDotNet(String methodName, Object target, MethodInformation methodInformation, Object arguments)
   bei System.Management.Automation.DotNetAdapter.MethodInvoke(PSMethod method, Object arguments)
   bei System.Management.Automation.Adapter.BaseMethodInvoke(PSMethod method, Object arguments)
   bei System.Management.Automation.PSMethod.Invoke(Object arguments)
   bei System.Management.Automation.ParserOps.CallMethod(Token token, Object target, String methodName, Object paramArray, Boolean callStatic, Object valueToSet)
   bei System.Management.Automation.MethodCallNode.InvokeMethod(Object target, Object arguments, Object value)
   bei System.Management.Automation.MethodCallNode.Execute(Array input, Pipe outputPipe, ExecutionContext context)
   bei System.Management.Automation.ParseTreeNode.Execute(Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
   bei System.Management.Automation.StatementListNode.ExecuteStatement(ParseTreeNode statement, Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)

Wenn ich einen Mailprovider habe dort kenne ich ja auch den SMTP Server, aber was trage ich Hausintern da ein?

Habe schon den Exchange probiert so wie er bei uns im Outlook eingetragen wird, aber das ging auch nicht.

Grüße

Content-Key: 147552

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

Printed on: April 23, 2024 at 16:04 o'clock

Mitglied: 48507
48507 Jul 23, 2010 at 15:55:15 (UTC)
Goto Top
-smtpserver "domain.de" ist falsch, da muss entweder den FQDN oder die IP des Exchange stehen. Außerdem muss der Exchange anonymes SMTP erlauben.

Müssen die Parameter nicht in der richtigen Reihenfolge übergeben werden, wie in der Funktion angegeben?
Member: H41mSh1C0R
H41mSh1C0R Jul 23, 2010 at 20:36:58 (UTC)
Goto Top
FQDN??

Den Namen des Exchange habe ich bereits ausprobiert scheint nicht aufzulösen. Aber im Outlook steht er auch nicht als IP drinnen.

Gut anonymes SMTP wird er bestimmt nicht erlauben,aber ich habe auch schon eine passage gefunden wo ich einen Benutzer einbinden kann.

grüße
Member: micneu
micneu Dec 09, 2010 at 07:42:00 (UTC)
Goto Top
und hast du es gelöst?
ich stehe auch gerade vor dem gleichen problem....
würde mich freuen über ein posting deiner lösung....

gruß michael
Member: H41mSh1C0R
H41mSh1C0R Dec 09, 2010 at 08:33:09 (UTC)
Goto Top
Hallo Michael,

das Problem ist leider noch nicht gelöst, da es an Priorität verloren hat, bzw. sich andere Aufgaben so in Vordergrund gedrängt haben das das erstmal ruhen muss. Man kann sich leider nicht Teilen und nur eines nach dem anderen erledigen.

VG