Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

E-Mail mit Anhang per ahk und SwithMail versenden



  • Please log in to reply
13 replies to this topic
CodeNewbee
  • Members
  • 104 posts
  • Last active: Dec 02 2015 10:12 PM
  • Joined: 25 Jul 2013

Hallo liebe Mitstreiter,

 

eigentlich geht es mir "nur" darum E-Mails mit Anhang per Script zu versenden. Hierfür kommt natürlich eine normale Mailanwendung nicht in Frage.
Also habe ich mich für SwithMail entschieden.

Allerdings muss im Startbefehl folgendes stehen:

Runwait, %PfadzurLogdatei%SwithMail.exe /s /x "SwithMailSettings.xml"

Das Problem sind die "SwithMailSettings.xml" Wie muss das Ganze maskiert werden, damit es als 1 Befehl ausgeführt wird?
Habe mir schon den Wolf probiert, aber es funktioniert leider nicht!! Das Programm schreibt es so vor, andernfalls müsste man alle Parameter, inkl. des SMTP-Passwortes, im Klartext übergeben. Keine gute Idee!!!

#NoEnv
; #NoTrayIcon ; Das AHK Symbol wird nicht angezeigt

; ------------ Variablen fuer den Logfilereader - immer an den Anfang eines Scriptes -----------------------------------
PfadzurLogdatei := "D:\zzzz_Batch_Logfiles\"

; #NoTrayIcon ; Das AHK Symbol wird nicht angezeigt


Runwait, %PfadzurLogdatei%SwithMail.exe /s /x "SwithMailSettings.xml", , Hide ; starte SwithMail.exe mit den Parametern, "im Arbeitsverzeichnis" , und fuehre es versteckt "Hide" aus

 



gregster
  • Members
  • 283 posts
  • Last active: Nov 09 2015 03:08 AM
  • Joined: 19 Mar 2009

Liegt es denn am AHK-Skript oder funktioniert es auch nicht, wenn du es direkt per Kommandozeile probierst? Oder per Batchfile? Da es sich doch offenbar um ein Kommandozeilentool (oder?) handelt, hast du die Ausführung über %comspec% (cmd.exe) probiert?

Und müssten die Kommas nicht escaped werden?

 

Fragen über Fragen  ... wink.png



gregster
  • Members
  • 283 posts
  • Last active: Nov 09 2015 03:08 AM
  • Joined: 19 Mar 2009

So, hab dein Skript getestet - natürlich mit meinen Pfaden und mit meiner xml-Datei. Für mich funktioniert es einwandfrei.

 

Stimmen deine Pfade zur exe- und zur xml-Datei? Ich hab jeweils den kompletten Pfad verwendet, auch zur xml-Datei. Ich nehme an, da hapert es bei dir. Du hast dort keinen Pfad angegeben. (Es sei denn, die exe- und xml-Datei sind im gleichen Verzeichnis wie das Skript - dann kann ich die Pfade auch weglassen.)

Hast du denn mal den Test durchgeführt, den die graphische Oberfläche des Progs anbietet? Wenn der funktioniert, kannst du dir dort auch die Kommandozeile automatisch erzeugen lassen. Ich bekomme da soetwas wie

 

SwithMail.exe /s /x "C:\SwithMailv2111\SwithMailSettings.xml"

 

Dann muss ich halt ggf. noch den Pfad zur exe hinzufügen, wie du es auch getan hast. Und voilà...

 

Die Kommas und 'Hide' kannst du sowieso weglassen, da der /s-Switch ja eben dazu führt, dass die Mail (s)ilent verschickt wird... da gibt es gar kein Fenster zum verstecken.

 

_edited_



CodeNewbee
  • Members
  • 104 posts
  • Last active: Dec 02 2015 10:12 PM
  • Joined: 25 Jul 2013

@ gregster,

 

vielen Dank für Deine ausführliche Hilfe...
 

Fragen über Fragen  ... wink.png

 

Eigentlich nicht, selbstverständlich funktioniert der Aufruf und das Absenden ohne die ahk Befehle...

bekomme da ...
SwithMail.exe /s /x "C:\SwithMailv2111\SwithMailSettings.xml"

... das war auch mein Plan, übersetzt heisst mein Aufruf ja:

D:\zzzz_Batch_Logfiles\SwithMail.exe /s /x "SwithMailSettings.xml"

Selbstverständlich liegt die xml im gleichen Verzeichnis!!! Trotzdem vielen Dank für Deine Hilfe, allerdings wurde ich hier offenbar missverstanden...

Letztlich wäre es nur darum gegangen wie der Befehlsaufruf= >>>> D:\zzzz_Batch_Logfiles\SwithMail.exe /s /x "SwithMailSettings.xml" <<<< in ahk zu übersetzen wäre.

Und natürlich habe ich auch Alternativen wie blat geprüft, die jedoch in Hinblick auf SSL völlig unzureichend sind.
In diesem Sinne wünsche ich Dir ein schönes Wochenende...



gregster
  • Members
  • 283 posts
  • Last active: Nov 09 2015 03:08 AM
  • Joined: 19 Mar 2009
✓  Best Answer

Selbstverständlich liegt die xml im gleichen Verzeichnis!!!

...

selbstverständlich funktioniert der Aufruf und das Absenden ohne die ahk Befehle...

 

Naja, selbstverständlich ist das nicht. Die xml-Datei kann man natürlich überall hinlegen. Und wenn bspw die Login-Daten in der xml nicht stimmen, kann man auch per Befehlszeile nichts erreichen.

 

Offenbar besteht bei dir doch ein Problem mit deinem Skript, während es bei mir läuft. Also geh ich alle potenziellen Fehlerquellen, die mir einfallen, durch.

 

 

Letztlich wäre es nur darum gegangen wie der Befehlsaufruf= >>>> D:\zzzz_Batch_Logfiles\SwithMail.exe /s /x "SwithMailSettings.xml" <<<< in ahk zu übersetzen wäre.

 

Wie oben gesagt, dein Skript funktioniert bei mir (mit angepassten Pfaden) einwandfrei. Dir ist die Übersetzung in ahk bereits gelungen!!!

Nur der Code-Teil ", , Hide" bewirkt nichts, da erst gar kein Fenster erzeugt wird, was versteckt werden könnte (aufgrund des /s-Switches) und ist daher überflüssig. (Außerdem müssten die Kommas wahrscheinlich "escaped" werden. Aber in diesem Fall ist es eh wurscht, da 'hide' hier keinen Effekt hat und ahk auch keinen Fehler auswirft.)

 

Wenn das Skript trotzdem nicht bei Dir funktionieren sollte, liegt es nahe, dass entweder deine Pfadangaben falsch sind oder deine xml-Datei nicht die richtigen Daten enthält. Daher meine Frage, ob die Ausführung per Kommandozeile und/oder die integrierte Testmöglichkeit von Swithmail mit deiner xml-Datei funktionieren.

Wenn ich dich richtig verstehe, funktionieren diese beiden Tests jedoch bei dir. Die Mails kommen also an... Was kann also noch der Grund sein, dass dein Skript bei dir nicht funktioniert? Sehr lang ist es nicht, viele andere Möglichkeiten dürfte es nicht geben...

 

Benutzt du vielleicht Win7 oder Win8 und musst das Skript als Admin ausführen?? Das kann ich leider im Moment nicht testen, aber bei mir auf Vista funktioniert es jedenfalls.

 

 

Und natürlich habe ich auch Alternativen wie blat geprüft, die jedoch in Hinblick auf SSL völlig unzureichend sind.

 

Sorry, blat sagt mir nichts, aber, wie gesagt, Swithmail funktioniert mit RunWait. Habe schon verschiedenste Tests mit deinem Skript (in verschiedenen Abwandlungen) durchgeführt und inzwischen sind ca. 30 einzelne Testmails auf meinem Mailkonto eingetroffen. (zum Verschicken habe ich mir ein frisches gmail-Konto angelegt und die Mails an meine normale Mailadresse geschickt)

 

 

allerdings wurde ich hier offenbar missverstanden...

 

Hm, ich hab allerdings den Eindruck, als wäre ich tüchtig missverstanden worden.

 

Oder sollte ich dich doch missverstanden haben? Das von dir gepostete Skript funktioniert bei dir nicht? Richtig? Bei mir funxt es. Nun sollten wir rausfinden, warum das so ist...

 

Oder besteht doch ein anderes Problem? Dann tappe ich allerdings im Dunkeln. Dann versuche bitte nochmal, das Problem anders zu beschreiben. Gibt AHK eine Fehlermeldung aus? Passiert gar nichts? Per Kommandozeile kommen die Mails bei dir an und landen nicht etwa im Spamfolder? Welche AHK-Version und welche Windows-Version verwendest du?

 

Dir auf jeden Fall auch ein schönes Wochenende!



CodeNewbee
  • Members
  • 104 posts
  • Last active: Dec 02 2015 10:12 PM
  • Joined: 25 Jul 2013

Hallo gregster,

 

so ist das manchmal mit dem Wald und den Bäumen...
Da der direkte Aufruf funktionierte, habe ich mir mein Skript nochmal genauestens angesehen.
Wenn ich es von meinem Hauptrechner ausgeführt habe, erhielt ich folgende Fehlermeldung:

Windows 7 | 64 bit | SP1 | AHK Version 64 bit Unicode : 1.1.12.00

 

 

---------------------------
switch-mail-script.ahk
---------------------------
Error:  Failed attempt to launch program or document:
Action: <D:\zzzz_Batch_Logfiles\SwithMail.exe>
Params: </s /x "SwithMailSettings.xml">

Specifically: Das System kann die angegebene Datei nicht finden.



    Line#
    102: PfadzurLogdatei := "D:\zzzz_Batch_Logfiles\"
--->    106: RunWait,%PfadzurLogdatei%SwithMail.exe /s /x "SwithMailSettings.xml",,Hide
    107: Exit
    108: Exit
    108: Exit

The current thread will exit.
---------------------------
OK   
---------------------------

Der entscheidende Punkt war: Specifically: Das System kann die angegebene Datei nicht finden.
Schlicht und ergreifend der Pfad zur SwithMail.exe war falsch, denn von einem Hauptrechner ausgeführt wäre das Ziel "Z" gewesen...

Ich danke Dir aber für Deine umfassenden Tests, ansonsten wäre ich wahrscheinlich nicht auf die naheliegenste Lösung gekommen, da ich immer der Meinung war, das der Funktionsaufruf stimmen sollte.
 

 

Nur der Code-Teil ", , Hide" bewirkt nichts, da erst gar kein Fenster erzeugt wird, was versteckt werden könnte (aufgrund des /s-Switches) und ist daher überflüssig.

Da gebe ich Dir Recht, das ist unnötig, und eigentlich auch nur ein Überrest aus einem anderen Aufruf. Durch /s wird es ja schon versteckt.
Sorry, für die ganze Aufregung, aber ich habe schon an mir gezweifelt.
 

 

Sorry, blat sagt mir nichts...

Blat ist einfach nur ein anderes Kommandozeilen Mail Programm... Allerdings reicht es nicht an SwithMail und dessen Funktionen heran. Insbesondere die Möglichkeit die XML Datei vom Programm erstellen zu lassen, finde ich genial.

Also vielen Dank für Deine Tests, dadurch hast Du ja klar dargelegt, das der grundsätzliche Aufruf korrekt ist, und der Fehler irgendwo bei mir liegen muss. Na ja und das größte Schaf sitzt ja bekanntlich immer vor dem PC, wie ich hier selbst wieder bewiesen habe...

Ich wünsche abschließend ein schönes Wochenende und entschuldige mich für den Wirbel...  ;-)  ;-)
 



CodeNewbee
  • Members
  • 104 posts
  • Last active: Dec 02 2015 10:12 PM
  • Joined: 25 Jul 2013

So und hier nun das fertige Script, vielleicht kann es Jemand gebrauchen...

 

1. SwithMail 2.1.1.1 downloaden.

2. Die Exdatei starten, dadurch wird die grundlegende XML Datei erstellt, hier nun diese Einstellungen vornehmen, natürlich mit Euren Daten.
3. In meinem Script die entsprechenden Einträge ändern, ggf. noch weitere Schalter hinzufügen, etc.
 

#NoEnv
#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt

; ------------ Variablen fuer den Mailversand - immer an den Anfang eines Scriptes -----------------------------------
SwithMailOrdner := "Z:\zzzz_Batch_Logfiles\SwithMail\"
SwithMail_XML := "SwithMail_Asus.xml"
E_Mail_von := "Datenabgleich mit Asus NB"
Betreff_der_Mail := "Auswertung des Datenabgleiches mit Asus NB"
; ------------ Variablen fuer den Logfilereader - immer an den Anfang eines Scriptes ----------------------------------
PfadzurLogdatei := "Z:\zzzz_Batch_Logfiles\"
BackupZusammenfassung := "Backup.txt"


; ---------------------------- Sende eine E-Mail mit den Daten und unter Verwendung der Parameter ----------------------------------------------------------------------
Runwait, %SwithMailOrdner%SwithMail.exe /Silent /Attachment "%PfadzurLogdatei%%BackupZusammenfassung%" /FromName "%E_Mail_von%" /Subject "%Betreff_der_Mail%" /BodyTxt "%PfadzurLogdatei%%BackupZusammenfassung%" /XML "%SwithMailOrdner%%SwithMail_XML%" , , ; starte SwithMail.exe mit den Parametern, "im Arbeitsverzeichnis" , 


/*
------------------------------------------------------
|
|	Product   - SwithMail
|	Version   - 2.1.1.1
|	Author    - Tim Bare
|	Copyright - 2012-2013 - Tim Bare
|
|	Website   - http://www.tbare.com
|	Project   - http://swithmail.tbare.com
|
|	Description:
|	   SwithMail is an application
|	   that allows you to send SSL/TLS SMTP
|	   email silently from command line (CLI), 
|	   or a batch file using Exchange, Gmail, 
|	   Hotmail, Yahoo! Plus, or Any custom server
|	    - for FREE!
|
------------------------------------------------------

Usage:

SwithMail.exe [/s] [/to "..."] [/CC "..."] [/from "..."] [/name "..."] [/sub "..."] [/Body "..."] [/HTML] [/Attachment "C:\Path\To\File.txt"] [/Param1 "value"] [/enc "..."]


---------------------
Sample Usage:

SwithMail.exe /s /x "C:\path\to\settings.xml" /btxt "c:\path\to\bodyText.txt" /p1 "Mr. Smith" /enc "iso-8859-1"


---------------------
Error Codes: 
When running silently from command line (or more specifically a batch file), Swithmail now supports error codes.
0 - No error - email delivered
1 - Error - something went wrong

Example usage in a .bat file:
@echo off
rem ...
set errorlevel=
C:\SwithMail\SwithMail.exe /s /x "SwithMailSettings.xml"
IF %errorlevel% ==0 GOTO SUCCESS
IF %errorlevel% ==1 GOTO ERROR

:SUCCESS
echo Success!
GOTO END

:ERROR
echo Error!
GOTO END

:END


---------------------
Parameters:

/Silent -- [also '/s' and '/q'] send an email without any prompt.
/XML -- [also '/x'] "C:\Path\To\Settings.xml"
/FromAddress -- [also '/from'] email address
/FromName -- [also '/name'] name displayed
/Server -- server address - no port specified
/Port -- [also '/p'] server port - needed if /Server is used
/Username -- [also '/u'] specified different username to use when logging in with SSL / TSL
/Password [also '/pass'] password - in plain text
/SSL -- [also '/TSL'] "true" or "false" depending on if SSL / TLS is enabled
/ToAddress -- [also '/to'] email address(es); multiple separated by ';' or ','
/CC -- email address(es); multiple separated by ';' or ','
/BCC -- email address(es); multiple separated by ';' or ','
/ReplyTo -- [also '/rt'] address to set as the "Reply To" address
/Subject -- [also '/sub'] subject "in quotes"
/Body -- [also '/b'] email body "in quotes" - html tags allowed when /HTML=true
/BodyTxt -- [also '/btxt'] full path of a text file to be used as the message body.
/HTML -- "true" or "false" depending on if HTML tags are allowed in the body
/Attachment -- [also '/a'] "C:\Path\To\File.txt|C:\PathTo\2.txt" - separate with pipe (|) symbol
/Param{1-5} -- [also '/p{1-5}'] use %Param1% in subject or body, && replace it with this value
/Test -- use when testing from CLI. Message will appear with errors or success 
/Encoding -- [also '/enc'] Specify different charset to be used (UTF8 by default)

---------------------
Global variables (use in email subject & body):

%now% - displays current date & time
%computername% - displays computer name
%username% - displays username of account running SwithMail


---------------------
Disclaimer:
This software is provided by the copyright holder and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

--Basically, I am not responsible for the way this application is used, nor can I ensure that no damage will be caused by using this program. Don't use it to send SPAM. Please... that's not why I wrote it, and nobody likes SPAM!
*/


gregster
  • Members
  • 283 posts
  • Last active: Nov 09 2015 03:08 AM
  • Joined: 19 Mar 2009

Freut mich, dass du das Problem gefunden hast.

 

Durch deine Frage habe ich jedenfalls ein sehr schönes Tool und seine Optionen genau kennengelernt. Hab zwar aktuell keine konkrete Anwendung dafür, aber es wird mir bestimmt in Zukunft noch nützlich sein.



Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011
Aber ich glaube das wir hier langsam aber sicher Offtopic sind, da unsere Diskussion hier nun nichts mehr mit ahk zu tun hat ... ;-)

 

und darum splitte ich das jetzt auch... HIER GEHT'S WEITER


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

Zur Ergänzung:

 

Zwischenzeitlich hatte garry ein funktionierendes Beispiel mit ThunderBird gepostet:

filex   = D:\Anwenderdaten\AHK\AHK Scripte\Projekte\_SandBox\Test.exe
ifnotexist,%filex%
  {
  msgbox,%filex% not exists .
  exitapp
  }
tox     [email protected]   ; adress 
subject =Test55
body    =FollowedLine1`%0AFollowedLine2
dates   =%a_now%
      TO=to='%TOX%'
      PR=C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe
      SB=subject=%subject%
      AT=attachment='%FILEX%'
      BD=body=Hallo Garry`%0A`%0AHow are you ?`%0A`%0A%body%`%0A`%0AGreetings`%2C`%0A garry`%0A`%0A`%0A%dates%
      ALL=%TO%,%SB%,%AT%,%BD%
      run,%PR% -compose "%ALL%"
exitapp

...siehe Thread zum selben Thema


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


CodeNewbee
  • Members
  • 104 posts
  • Last active: Dec 02 2015 10:12 PM
  • Joined: 25 Jul 2013

Danke Seidenweber,

 

ich finde die Idee von Gary nicht so interessant, da hierzu Thunderbird genutzt werden soll.
 

Allerdings finde ich die AHK Mail Scripte in dem aus diesem Thema weiterverlinkten Threat hochinteressant:

http://www.autohotke...delivery-ahk-l/

Für mich ist jedoch Swith Mail zunächst völlig OK, zumal Tim Bare für mich auch schon einige Änderungen eingepflegt hat...
Trotzdem vielen Dank das Du noch am Thema dran geblieben ist.



Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011
zumal Tim Bare für mich auch schon einige Änderungen eingepflegt hat.

Du meinst, das Ding hat jetzt ne säuselnde Frauenstimme und kann Kaffee kochen?


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Ja Win SAPI und kann eine e-mail an meine Kaffeemaschine senden.


Visit the new forum ahkscript.org.

http://ahkscript.org


CodeNewbee
  • Members
  • 104 posts
  • Last active: Dec 02 2015 10:12 PM
  • Joined: 25 Jul 2013

@ Seidenweber

 

Du meinst, das Ding hat jetzt ne säuselnde Frauenstimme und kann Kaffee kochen?

 

... Nur kein Neid ;-)  ;-) ;-)

 

Leider noch keine säuselnde Frauenstimme, und das mit dem Kaffee klappt auch bisher nicht, ist aber beides für eine zukünftige Version eingeplant. tongue.png  tongue.png