Page 1 sur 1
[..] Répéter une action toutes les x secondes + mail
Posté : dim. 28 déc. 2008 18:33
par Ikki
Bonjour à tous,
Je débute avec AutoIt et j'ai 2 questions bien distinctes que je regroupe sur ce topic histoire de pas flooder dès mes premiers posts...
La 1ère question :
Je souhaiterais répéter une action toutes les 20 secondes. Quelle boucle faut-il utiliser pour cela ? Malgré des recherches, impossible de trouver...
2ème question :
Je n'ai pas trouvé de fonctions (sur la doc officielle) qui permette d'envoyer des mails "simplement". Etant habitué à C# et à ses classes qui permettent de faire ça en quelques lignes de code, je souhaiterais savoir s'il existe des fonctions SendMail qui m'auraient échappées...
Merci d'avance

Re: Répéter une action toutes les x secondes + mail
Posté : dim. 28 déc. 2008 18:56
par Stigmate
Bonjours, pour ta première question, le forum regorge d'exemple de boucle.
Néanmoin, tu peut utiliser un "while" dans lequel tu mettra ton code et une attente en utilisant "Sleep" comme ceci :
Pour ta deuxieme question je ne sais pas du tout, je suis débutant tout comme toi

Re: Répéter une action toutes les x secondes + mail
Posté : dim. 28 déc. 2008 20:03
par Ikki
Ok, merci beaucoup, ça marche impeccable

je n'avais pas pensé à mettre un Sleep dans une boucle infinie. D'ailleurs, est-ce vraiment propre de faire cela ?
Sinon pour mon histoire de mail... Quelqu'un a une idée ?

Re: Répéter une action toutes les x secondes + mail
Posté : dim. 28 déc. 2008 21:04
par Tlem
Merci de respecter les règles de présentation d'un message dont voici le lien :
http://www.autoitscript.fr/forum/viewto ... f=35&t=595.
En ce qui concerne le sleep dans une boucle, je ne vois pas ce qui ne serait pas propre à faire cela.
Dans n'importe quel langage de programmation, si vous ne rajoutez pas de pause dans certaines boucles, la consommation CPU augmente de manière impressionnante et le script devient totalement bloquant pour la machine.
Pour la fonction de mail, l'utilisation du moteur de recherche du forum vous donnera les réponses que vous attendez.
Re: [..] Répéter une action toutes les x secondes + mail
Posté : dim. 28 déc. 2008 22:51
par L4crymal
Re: [..] Répéter une action toutes les x secondes + mail
Posté : mar. 30 déc. 2008 20:33
par Ikki
Merci beaucoup L4crymal, je pense que cela va m'être extrêmement utile
Je vais regarder ça plus en détails et vous tiendrais au courant dans la semaine
Re: [..] Répéter une action toutes les x secondes + mail
Posté : jeu. 01 janv. 2009 23:32
par Ikki
Ok, merci beaucoup, l'envoi de mail fonctionne. Merci aussi à arrkhan et à son script
http://arrkhan.free.fr/fai.php qui m'a bien aidé à trouvé son SMTP
N'ayant pas vraiment le niveau pour bien comprendre le script donné par L4crymal, j'ai codé ma fonction comme cela :
Code : Tout sélectionner
Func _SendMail()
$Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body)
$err = @error
If $Response = 1 Then
MsgBox(0, "Tout baigne !", "Le mail a bien été envoyé à " & @CRLF & $s_ToAddress)
Else
MsgBox(0, "Erreur!", "Le mail n'a pu être transmis. Code d'erreur : " & $err)
EndIf
EndFunc
En revanche, je ne pige pas comment envoyer des pièces jointes. Avec _INetSmtpMail(), ça semble impossible, et je ne comprends pas vraiment _INetSmtpMailCom() codée ici

viewtopic.php?f=20&t=822
Quelqu'un pourrait-il m'expliquer _INetSmtpMailCom() ou y a t-il une autre fonction qui m'aurait échappé permettant d'envoyer "simplement" une P.J. ?
Re: [..] Répéter une action toutes les x secondes + mail
Posté : dim. 04 janv. 2009 16:08
par Ikki
Je me permets un petit up
Personne pour une fonction qui joint une PJ au mail ou qui m'explique la fonction
http://www.autoitscript.fr/forum/viewto ... f=20&t=822 ?
Re: [..] Répéter une action toutes les x secondes + mail
Posté : dim. 04 janv. 2009 20:53
par Tlem
Code : Tout sélectionner
_INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password,$IPPort, $ssl)
La variable
$s_AttachFiles de cette fonction devrait vous sauter aux yeux !
Surtout que dans l'exemple toutes les explications sont données.
Code : Tout sélectionner
;##################################
; Variables
;##################################
$s_SmtpServer = "MailServer" ; address for the smtp-server to use - REQUIRED
$s_FromName = "Name" ; name from who the email was sent
$s_FromAddress = "your@Email.Address.com" ; address from where the mail should come
$s_ToAddress = "your@Email.Address.com" ; destination address of the email - REQUIRED
$s_Subject = "Userinfo" ; subject from the email - can be anything you want it to be
$as_Body = "" ; the messagebody from the mail - can be left blank but then you get a blank mail
$s_AttachFiles = "" ; the file you want to attach- leave blank if not needed
$s_CcAddress = "CCadress1@test.com" ; address for cc - leave blank if not needed
$s_BccAddress = "BCCadress1@test.com" ; address for bcc - leave blank if not needed
$s_Username = "******" ; username for the account used from where the mail gets sent - Optional (Needed for eg GMail)
$s_Password = "********" ; password for the account used from where the mail gets sent - Optional (Needed for eg GMail)
$IPPort = 25 ; port used for sending the mail
$ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS
;~ $IPPort=465 ; GMAIL port used for sending the mail
;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS
Re: [..] Répéter une action toutes les x secondes + mail
Posté : lun. 05 janv. 2009 22:46
par Ikki
J'avais bien vu la variable $s_AttachFiles, mais je n'avais pas compris la manière dont l'auteur de la fonction l'employait. Je demandais une explication car je déteste copier / coller sans comprendre vraiment ce que je fais.
J'ai donc dû me résoudre à copier / coller la fonction puis à l'adapter à mon script, et non l'inverse. Enfin tant pis, la pièce jointe fonctionne
Seul petit bémol avant de clore le topic : J'envoie une image au format .jpg sur mon adresse de messagerie. Mon mail arrive dans la rubrique "indésirable" avec, en prime, une pop-up m'avertissant du contenu potentiellement dangereux du mail ( oO ). De plus, impossible d'ouvrir l'image. Est-ce du à la messagerie qui la bloque, ou y a t-il autre chose à faire ?
Encore merci, et désolé si mes questions peuvent paraître stupides
Re: [..] Répéter une action toutes les x secondes + mail
Posté : mar. 06 janv. 2009 06:41
par Tlem
Ikki a écrit :J'ai donc dû me résoudre à copier / coller la fonction puis à l'adapter à mon script, et non l'inverse.
Je comprend, mais il faut parfois aller à l'essentiel en utilisant les outils tel quels. Vous n'essayez quand même pas de comprendre chaque fonctions que vous utilisez ???
Car sinon sachez que chaque fois que vous ajoutez un include, cela correspond à un fichier .au3 du dossier Include de AutoIt dans lequel vous avez parfois plusieurs dizaines de fonctions ...
Pour votre problème de courrier et de pièce jointe, à priori, ceci est lié au SMTP.
Essayez de changer le nom de l'expéditeur (
$s_FromAddress), ou de compresser l'image avant.
Si ça ne fonctionne toujours pas, essayez avec un compte de courrier 'sécurisé' en utilisant
$s_Username et
$s_Password.