[..] Répéter une action toutes les x secondes + mail

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Ikki
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 18:17
Status : Hors ligne

[..] Répéter une action toutes les x secondes + mail

#1

Message 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 :D
Modifié en dernier par Tlem le dim. 28 déc. 2008 21:05, modifié 1 fois.
Raison : Ajout de la balise [..] dans le titre
Avatar du membre
Stigmate
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 26 déc. 2008 11:54
Status : Hors ligne

Re: Répéter une action toutes les x secondes + mail

#2

Message 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 :

Code : Tout sélectionner

While 1
;ton code
Sleep (20000)
WEnd
 
Pour ta deuxieme question je ne sais pas du tout, je suis débutant tout comme toi :)
Ikki
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 18:17
Status : Hors ligne

Re: Répéter une action toutes les x secondes + mail

#3

Message par Ikki »

Ok, merci beaucoup, ça marche impeccable :-D 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 ? :mrgreen:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Répéter une action toutes les x secondes + mail

#4

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

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: [..] Répéter une action toutes les x secondes + mail

#5

Message par L4crymal »

Ikki
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 18:17
Status : Hors ligne

Re: [..] Répéter une action toutes les x secondes + mail

#6

Message par Ikki »

Merci beaucoup L4crymal, je pense que cela va m'être extrêmement utile :D

Je vais regarder ça plus en détails et vous tiendrais au courant dans la semaine
Ikki
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 18:17
Status : Hors ligne

Re: [..] Répéter une action toutes les x secondes + mail

#7

Message 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 :mrgreen:

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 :arrow: 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. ?
Ikki
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 18:17
Status : Hors ligne

Re: [..] Répéter une action toutes les x secondes + mail

#8

Message par Ikki »

Je me permets un petit up :oops:

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 ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Répéter une action toutes les x secondes + mail

#9

Message 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
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Ikki
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 18:17
Status : Hors ligne

Re: [..] Répéter une action toutes les x secondes + mail

#10

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Répéter une action toutes les x secondes + mail

#11

Message 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 ... :lol:

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

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre