Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Autoit Smtp Mail versenden

Mitglied: pytrelooc

pytrelooc (Level 1) - Jetzt verbinden

15.01.2014, aktualisiert 15:36 Uhr, 8059 Aufrufe, 8 Kommentare

Hallo zusammen,

ich versuche gerade eine E-Mail über einen Smtp-Server zu versenden.
Hierzu habe ich folgenden Code benutzt:


01.
        Local $s_SmtpServer = "XXXXXXX"
02.
	Local $s_FromName = "XXXXXX"
03.
	Local $s_FromAddress = "XXXXX"
04.
	Local $s_ToAddress = "XXXXX"
05.
	Local $s_Subject = "Das ist ein Test"
06.
	Local $as_Body[2]
07.
	$as_Body[0] = "AD Email Text"
08.
	$as_Body[1] = "Zeile2"
09.
	Local $Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body,@ComputerName ,-1,1)
10.
	Local $err = @error
11.
	If $Response = 1 Then
12.
		MsgBox(0, "Success!", "Mail sent")
13.
	Else
14.
		MsgBox(0, "Error!", "Mail failed with error code " & $err)
15.
	EndIf
So funktioniert das Senden der Mail, wenn ich jedoch das @computerName weglasse durch welches ich ein Protokoll des Sendeverlaufs bekomme dann schlägt das Senden der Mail fehl. Woran liegt das ?

Vielleicht könnt ihr mir weiterhelfen

Mit freundlichen Grüßen

pytrelooc

Mitglied: colinardo
LÖSUNG 15.01.2014, aktualisiert um 15:36 Uhr
Hi pytrelooc,
wenn du für den Parameter einen leeren String als ("") angibst wird von der Funktion automatisch der Computername verwendet.

Hier sind die ersten Zeilen der Funktion, dort siehst du das wenn man einen leeren String übergibt die Funktion automatisch den Computernamen auf die Variable setzt:
01.
Func _INetSmtpMail($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_helo = "", $s_first = " ", $b_trace = 0)
02.
	If $s_SmtpServer = "" Or $s_FromAddress = "" Or $s_ToAddress = "" Or $s_FromName = "" Or StringLen($s_FromName) > 256 Then Return SetError(1, 0, 0)
03.
	If $s_helo = "" Then $s_helo = @ComputerName
04.
...
05.
...
komplett auslassen kannst du den Parameter nur, wenn du keine Parameter nach diesem definierst.

Falls du mal eine Mail-Funktion benötigst die SMTP-Authentifizierung und TLS-Verschlüsselung unterstützt guckst du hier
01.
; --- Mail Einstellungen ----- 
02.
$MAILFROM = "absender@email.de"
03.
$MAILTO = "empfänger@email.de"
04.
$MAILFROMNAME = "Absendername"
05.
$MAILBODY = "Der Body der Nachricht"
06.
$MAILSUBJECT = "Der Betreff der Nachricht"
07.
$MAILATTACHMENT = ""
08.
$MAILSERVER = "SMTP.SERVER.DE"
09.
$SMTPUSER = "SMTPUSERNAME"
10.
$SMTPPASS = "SMTPPASSWORD"
11.
$SMTPPORT = "25"
12.
$SMTPUSESSL = 1
13.
; ------------------------------
14.

15.
; --- Send Mail
16.
_INetSmtpMailCom($MAILSERVER,$MAILFROMNAME,$MAILFROM,$MAILTO,$MAILSUBJECT,$MAILBODY,$MAILATTACHMENT,"","","Normal",$SMTPUSER,$SMTPPASS,$SMTPPORT,$SMTPUSESSL)
17.

18.

19.
; Variables for Function _INetSmtpMailCom
20.
;=========================================
21.
;~ $SmtpServer = ""                 ; address for the smtp-server to use - REQUIRED
22.
;~ $FromName = "User"               ; name from who the email was sent
23.
;~ $FromAddress = ""                ; address from where the mail should come
24.
;~ $ToAddress = ""                  ; destination address of the email - REQUIRED
25.
;~ $Subject = "testsubject"         ; subject from the email - can be anything you want it to be
26.
;~ $Body = "This Is The Body"       ; the messagebody from the mail - can be left blank but then you get a blank mail
27.
;~ $AttachFiles = ""                ; the file you want to attach- leave blank if not needed
28.
;~ $CcAddress = ""                  ; address for cc - leave blank if not needed
29.
;~ $BccAddress = ""                 ; address for bcc - leave blank if not needed
30.
;~ $Importance = "Normal"           ; Send message priority: "High", "Normal", "Low"
31.
;~ $Username = ""                   ; username for the account used from where the mail gets sent - REQUIRED
32.
;~ $Password = ""                   ; password for the account used from where the mail gets sent - REQUIRED
33.
;~ $IPPort = 25                     ; port used for sending the mail
34.
;~ $ssl=0                           ; put to 1 if using https
35.
;=========================================
36.

37.
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
38.
    Local $objEmail = ObjCreate("CDO.Message")
39.
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
40.
    $objEmail.To = $s_ToAddress
41.
    Local $i_Error = 0
42.
    Local $i_Error_desciption = ""
43.
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
44.
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
45.
    $objEmail.Subject = $s_Subject
46.
    If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then
47.
        $objEmail.HTMLBody = $as_Body
48.
    Else
49.
        $objEmail.Textbody = $as_Body & @CRLF
50.
    EndIf
51.
    If $s_AttachFiles <> "" Then
52.
        Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
53.
        For $x = 1 To $S_Files2Attach[0]
54.
            $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
55.
            ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
56.
            If FileExists($S_Files2Attach[$x]) Then
57.
                $objEmail.AddAttachment ($S_Files2Attach[$x])
58.
            Else
59.
                ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
60.
                SetError(1)
61.
                Return 0
62.
            EndIf
63.
        Next
64.
    EndIf
65.
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
66.
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
67.
    If Number($IPPort) = 0 then $IPPort = 25
68.
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
69.
    ;Authenticated SMTP
70.
    If $s_Username <> "" Then
71.
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
72.
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
73.
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
74.
    EndIf
75.
    If $ssl Then
76.
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
77.
    EndIf
78.
    ;Update settings
79.
    $objEmail.Configuration.Fields.Update
80.
    ; Set Email Importance
81.
    Switch $s_Importance
82.
        Case "High"
83.
            $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
84.
        Case "Normal"
85.
            $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
86.
        Case "Low"
87.
            $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
88.
    EndSwitch
89.
    $objEmail.Fields.Update
90.
    ; Sent the Message
91.
    $objEmail.Send
92.
    If @error Then
93.
        SetError(2)
94.
    EndIf
95.
    $objEmail=""
96.
EndFunc   ;==>_INetSmtpMailCom
Grüße Uwe
Bitte warten ..
Mitglied: pytrelooc
15.01.2014 um 14:20 Uhr
Hallo,

danke für deine Hilfe !
bedeutet das es gibt keine Möglichkeit diesen Parameter wegzulassen oder habe ich dich falsch verstanden ?
Mit Passworteingabe usw. soll es nicht sein da der User mit einem klick diese Mail versenden soll (mit vorgefertigtem Text usw.) und nichts davon mitbekommen soll.
Dies habe ich schon alles gelöst (über ActiveDirectory die Mails ausgelesen usw). Das einzige was der User noch mitbekommt ist nun dieses Protokollfenster was jedoch nicht so sein soll.

Grüße
Bitte warten ..
Mitglied: colinardo
LÖSUNG 15.01.2014, aktualisiert um 15:36 Uhr
Zitat von pytrelooc:
bedeutet das es gibt keine Möglichkeit diesen Parameter wegzulassen oder habe ich dich falsch verstanden ?
einfach wie geschrieben einen leeren String übergeben => ""
ansonsten kann man sich die Funktion zurechtstutzen wenn das benötigt wird...
Bitte warten ..
Mitglied: pytrelooc
15.01.2014 um 14:32 Uhr
Wenn ich das so mache funktioniert das aber nicht.
Oder wie muss ich den String übergeben ?

01.
        Local $s_SmtpServer = "XXXXXXX"
02.
	Local $s_FromName = "XXXXXX"
03.
	Local $s_FromAddress = "XXXXX"
04.
	Local $s_ToAddress = "XXXXX"
05.
        Local $s_helo = ""
06.
	Local $s_Subject = "Das ist ein Test"
07.
	Local $as_Body[2]
08.
	$as_Body[0] = "AD Email Text"
09.
	$as_Body[1] = "Zeile2"
10.
	Local $Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_helo)
11.
	Local $err = @error
12.
	If $Response = 1 Then
13.
		MsgBox(0, "Success!", "Mail sent")
14.
	Else
15.
		MsgBox(0, "Error!", "Mail failed with error code " & $err)
16.
	EndIf
Bitte warten ..
Mitglied: colinardo
LÖSUNG 15.01.2014, aktualisiert um 15:36 Uhr
nach deiner obigen Benutzung sollte es so aber gehen.. ansonsten hast du eventuell eine ältere AutoIT-Version ?
01.
Local $Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, "",-1,1) 
Bitte warten ..
Mitglied: pytrelooc
15.01.2014 um 15:05 Uhr
Ah das "-1,1" hat gefehlt, jedoch erscheint nun immer noch dieses SmtP-Trace Fenster.
Kann man das irgendwie entfernen ?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 15.01.2014, aktualisiert um 15:36 Uhr
Zitat von pytrelooc:

Ah das "-1,1" hat gefehlt, jedoch erscheint nun immer noch dieses SmtP-Trace Fenster.
Kann man das irgendwie entfernen ?

klar, indem du den letzten Parameter weg lässt , also die letzte 1

sieh dir doch mal die Doku zur Funktion an:
http://www.autoitscript.com/autoit3/docs/libfunctions/_INetSmtpMail.htm
Bitte warten ..
Mitglied: pytrelooc
15.01.2014 um 15:36 Uhr
Die habe ich mir angesehen jedoch konnte ich das dort nich rauslesen.
Auf jeden fall funktioniert jetzt alles wie es soll.
Vielen Dank für deine Hilfe !

Gruß

Pytrelooc
Bitte warten ..
Ähnliche Inhalte
Windows 10
Lautstärke mit AutoIt ändern
Frage von HelloWorldWindows 103 Kommentare

Hey erstmal frohes neues Jahr euch Ich weiß ich schreibe spät Ich habe versucht mit AutoIT die Lautstärke meines ...

Entwicklung

AutoIT - Auf Eingabeaufforderung reagieren

Frage von veniplexEntwicklung6 Kommentare

Hallo zusammen, folgendes Problem: Ich habe eine AutoIT GUI. In einem Input gebe ich einen Befehl ein, z.B. . ...

Outlook & Mail

Office 365 - SMTP - automatisierte Mail versenden - "Gerät freigeben?!"

gelöst Frage von KMUlifeOutlook & Mail4 Kommentare

Hallo zusammen, Unser Serviceprogramm sollte konfiguriert werden können, dass auch User mit Office 365 Accounts automatisierte Mails schicken können. ...

E-Mail

Nachteile eines SMTP-Relays in E-Mail-Clients

Frage von rebuhleivE-Mail5 Kommentare

Eine allgemeine Frage: Ich habe einen Server auf einem Shared Host, dessen IP ständig auf Blacklists von einigen Mailservern ...

Neue Wissensbeiträge
LAN, WAN, Wireless
Sophos RED50 stürzt ab und ist danach tot
Information von Ex0r2k16 vor 2 TagenLAN, WAN, Wireless3 Kommentare

Hey, nach meinem Thread bin ich durch Zufall auf das hier gestoßen: Also wenn ihr UTMs und RED50's im ...

Windows 10

Microsoft macht Bluetooth absichtlich kaputt: Windows 10 Update blockiert Bluetooth-Verbindungen zu Android

Tipp von 1Werner1 vor 2 TagenWindows 107 Kommentare

Moin, jetzt spinnt MS total , was muss ich da auf Chip.de lesen: Auch im Juni schließt Microsoft im ...

Soziale Netzwerke

Facebook - künftig ohne Account des Bundeslandes Sachsen-Anhalt

Information von VGem-e vor 3 TagenSoziale Netzwerke3 Kommentare

Servus, mal sehen, ob andere öffentliche Einrichtungen folgen wollen/können Gruß

Humor (lol)
Facebook Mailer auf NIX-Spamlist
Information von Henere vor 3 TagenHumor (lol)

Eben aus dem Log meines Postfix gefischt. Recht haben Sie. FB ist SPAM :-) lachende Grüße, Henere

Heiß diskutierte Inhalte
Router & Routing
Synology NAS in anderem Subnetz nicht erreichbar
Frage von Tech1KonniRouter & Routing24 Kommentare

Hallo Leute, ich bin Software-Entwickler und daher auch etwas bewandert in den Grundkenntnissen der Netzwerktechnik. Aktuell habe ich allerdings ...

Netzwerke
Zugriff auf mehrere Clients via RDP
Frage von xXMariusXxNetzwerke11 Kommentare

Moin, ich würde gerne auf mehrere Clients in einem Netzwerk via RDP zugreifen. Gibt es eine elegantere Lösung als ...

Windows 7
RDP funktioniert nur einmal
Frage von Sc0rc3dWindows 710 Kommentare

Hi, ich arbeite mittels Remote Desktop von zu Hause. Manchmal per VPN und manchmal direkt (Portfreigabe 3389 -> 46XXX). ...

Windows Server
Probleme Installation Windows Server 2019
Frage von AK-47.2Windows Server8 Kommentare

Hallo zusammen, ich habe das Problem einen Windows Server 2019 auf ein Testsystem zu bringen. Das Mainboard ist ein ...