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

Frage Entwicklung

Mitglied: pytrelooc

pytrelooc (Level 1) - Jetzt verbinden

15.01.2014, aktualisiert 15:36 Uhr, 6479 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
Batch & Shell
Wie kann ich eine Mail über Blat versenden mit Batch
gelöst Frage von Dreamkiller112Batch & Shell8 Kommentare

Hallo, Hey ich benötige drigend Hilfe ich habe das Problem ich möchte eine Batch-Datei erstellen mit der ich eine ...

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. ...

PHP
PHP mail() Datei versenden
gelöst Frage von simon-niPHP3 Kommentare

Hallo Leute, ich habe ein kleines PHP Script zum versenden eines Formulars geschrieben/zusammenkopiert (bin leider PHP Anfänger). Das hat ...

E-Mail
HMail Server: kann keine Mails versenden
gelöst Frage von qualidatE-Mail

Eigentlich ist es nicht das erste Mal, dass ich einen HMail Server einrichte, diesmal ist es wie verhext. Also ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 4 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 11 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 13 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 16 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1017 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...