Via Powershell eine Mail verschicken über Exchange
Hi@All,
nettes Cmdlet
Jetzt kann ich bei smtp Server eintragen was ich will. Entweder kann er den Namen nicht auflösen oder er wirft einen Fehler:
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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 147552
Url: https://administrator.de/contentid/147552
Printed on: April 23, 2024 at 16:04 o'clock
4 Comments
Latest comment
-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?
Müssen die Parameter nicht in der richtigen Reihenfolge übergeben werden, wie in der Funktion angegeben?