Aide et conseils concernant AutoIt et ses outils.
lokomass
Niveau 5
Messages : 128 Enregistré le : mer. 15 déc. 2010 10:21
Status :
Hors ligne
#1
Message
par lokomass » ven. 17 déc. 2010 21:54
Bonsoir à tous,
J'aimerai "tout bêtement" envoyer un mail dans mon script à moi-même.
J'ai trouvé plein d'infos sur cette méthode sur le forum, mais aucune ne fonctionne, et il y a plein de codes dans tous les sens je ne sais pas du tout lesquels sont bons, lesquels ne le sont pas :
J'ai donc repris un bout de code qui ne m'a pas l'air mal, il ne me renvoi pas d'erreurs, mais pas de mails non plus
► Afficher le texte
Code : Tout sélectionner
;====================================================== Envoi Mail Confirm =======================================================
func SendMail()
$s_SmtpServer = "smtp.orange.fr"
$s_FromName = "Lokomass"
$s_FromAddress = "xxxxxxxxx@gmail.com"
$s_ToAddress = "xxxxxxxxx@gmail.com"
$s_CcAddress = ""
$s_BccAddress = ""
$s_Username = "xxxxxxxxxx"
$s_Password = "xxxxxxxxxxx"
$IPPort = 25
$ssl = 0
$mail=""
$as_Body = $SujetMail
$s_AttachFiles = ""
$s_Subject = "Sauvegarde Terminée"
$mail=_INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body,$s_AttachFiles)
EndFunc
J'ai aussi essayé avec IPPort en 465 et SSL = 1 mais pareil, aucune réception de mails..
Pouvez-vous une fois de plus m'éclairer ???
Merci
Modifié en dernier par
lokomass le dim. 19 déc. 2010 11:33, modifié 1 fois.
bloodwolff
Membre émérite
Messages : 655 Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status :
Hors ligne
#2
Message
par bloodwolff » ven. 17 déc. 2010 22:17
Essaie le code que j'avais posté
==>ici<== et dit moi si sa fonctionne
Compte skype : bloodwolfff
lokomass
Niveau 5
Messages : 128 Enregistré le : mer. 15 déc. 2010 10:21
Status :
Hors ligne
#3
Message
par lokomass » sam. 18 déc. 2010 10:31
Salut et merci,
Ça fonctionne impeccable, mais je veux pas toute cette interface, j'aimerais que tout se fasse automatiquement cad sans remplir les champ, l'interface etc etc...
As tu un script qui pourrais me faire ceci sans toute cette interface ???
Je te remercie en tout cas..
lokomass
Niveau 5
Messages : 128 Enregistré le : mer. 15 déc. 2010 10:21
Status :
Hors ligne
#4
Message
par lokomass » sam. 18 déc. 2010 11:21
Bon, je me répond tout seul, j'ai donc fait un mix entre ton code et le mien pour faire ça de manière automatique...
Voici ce que j'ai écrit, je n'ai pas d'erreur mais toujours pas de mails
Et voici le code que j'ai !
► Afficher le texte
Code : Tout sélectionner
;====================================================== Envoi Mail Confirm =======================================================
func SendMail()
$s_SmtpServer = "http://www.autoitscript.fr/smtp.php"
$s_FromName = "Lokomass"
$s_FromAddress = "xxxxxxxxxxxxxxx"
$s_ToAddress = "xxxxxxxxxxxxxxx"
$s_CcAddress = ""
$s_BccAddress = ""
$s_Username = "xxxxxxxxxxxxxxx"
$s_Password = "xxxxxxxxxxxxxxx"
$IPPort = 25
$ssl = 0
$mail=""
$as_Body = $SujetMail
$s_AttachFiles = ""
$s_Subject = "Sauvegarde Terminée"
$mail= INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username, $s_Password,$IPPort=25, $ssl=0)
EndFunc
Func 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)
$objEmail = ObjCreate("CDO.Message")
$objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
$objEmail.To = $s_ToAddress
Local $i_Error = 0
Local $i_Error_desciption = ""
If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
$objEmail.Subject = $s_Subject
If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
$objEmail.HTMLBody = $as_Body
Else
$objEmail.Textbody = $as_Body & @CRLF
EndIf
If $s_AttachFiles <> "" Then
Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
For $x = 1 To $S_Files2Attach[0]
$S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
If FileExists($S_Files2Attach[$x]) Then
$objEmail.AddAttachment ($S_Files2Attach[$x])
Else
$i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
SetError(1)
return 0
EndIf
Next
EndIf
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
If $s_Username <> "" Then
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
EndIf
If $Ssl Then
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
EndIf
$objEmail.Configuration.Fields.Update
$objEmail.Send
if @error then
SetError(2)
return
EndIf
EndFunc
Func MyErrFunc()
Return
EndFunc
n0way
Niveau 2
Messages : 26 Enregistré le : dim. 12 déc. 2010 20:15
Status :
Hors ligne
#5
Message
par n0way » sam. 18 déc. 2010 11:56
Bonjour,
ne serais-tu pas entrain de coder un keylogger par hasard?! C'est plutôt étrange.
A bientot,
n0way
sylvanie
Niveau 11
Messages : 1556 Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status :
Hors ligne
#6
Message
par sylvanie » sam. 18 déc. 2010 12:27
Bonjour,
sincèrement, je ne vois ici qu'une fonction d'envoie de mail automatisé. Ce n'est pas forcément dans un but malicieux. Bon nombre de progrmammes se servent des mails pour avertir des traîtements qu'ils ont fait (backup, check d'intégrité, administration en général ...).
@Lokomass : essayez d'utiliser l'obfuscateur de code Autoit pour cacher le mot de passe. Ce n'est pas une sécurité inviolable, mais bon ça sert de gros paillasson pour cacher la clé ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
lokomass
Niveau 5
Messages : 128 Enregistré le : mer. 15 déc. 2010 10:21
Status :
Hors ligne
#7
Message
par lokomass » sam. 18 déc. 2010 12:58
Bonjour,
Alors non je ne fait rien d'illégal lol, j'en ai ni l'envie ni les compétences.
J'ai tout simplement créer un petit prog qui fait mes sauvegardes PC et serveur automatiquement, et qui à la fin m'envoi un mail pour me dire qu'il a fini, et me donner le temps qu'il a mis...
Voilà.
Je veux bien utiliser ce que tu me dit Sylvanie seulement je ne sais pas cmment faire, et encore ma fonction d'envoi de mail de fonctionne toujours pas, savez-vous pourquoi ??
Merci
bloodwolff
Membre émérite
Messages : 655 Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status :
Hors ligne
#8
Message
par bloodwolff » sam. 18 déc. 2010 16:58
Tu as mis
Alors que dans mon script c'était
Code : Tout sélectionner
$s_SmtpServer = _INetGetSource("http://www.autoitscript.fr/smtp.php")
Pense à rajouter l'include Inet.au3 si n'y es pas déjà
Compte skype : bloodwolfff
sylvanie
Niveau 11
Messages : 1556 Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status :
Hors ligne
#9
Message
par sylvanie » sam. 18 déc. 2010 20:05
pour l'obscateur, il se trouve dans le répertoire d'installation d'atoit\Scite\Obfuscator\Obfuscator.exe
Lancez le, sélectionnez votre script :=> il vous génère un script équivalent mais écrit de façon difficilement visible par un humain. Ce qui cache un peu le mot de passe inclus dans le script. Cependant il existe pas mal de desassembleur procédant au reverse, d'où ma précédente remarque à ce sujet.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
lokomass
Niveau 5
Messages : 128 Enregistré le : mer. 15 déc. 2010 10:21
Status :
Hors ligne
#10
Message
par lokomass » sam. 18 déc. 2010 22:20
Alors, merci a vous deux, mais pour le smtp, j ai aussi essayé avec mon serveur smtp orange, écrit en dur et ça ne fonctionnait pas quand même.
Le problème doit venir d'ailleurs et je ne l ai toujours pas trouvé....
Concernant le inet.au3 il est bien rajouter au début, donc pas ça non plus
Merci
Merci
sylvanie
Niveau 11
Messages : 1556 Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status :
Hors ligne
#11
Message
par sylvanie » sam. 18 déc. 2010 22:58
il ne vous reste plus qu'à utiliser wireshark (ou un autre sniffer) pour logger le traffic sur le port 25 et voir les messages d'erreur du serveur...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
lokomass
Niveau 5
Messages : 128 Enregistré le : mer. 15 déc. 2010 10:21
Status :
Hors ligne
#12
Message
par lokomass » dim. 19 déc. 2010 00:29
Aie aie aie, ça va être galère je sens...
Au niveau de mon code t a trouver aucune erreur ? Aucune anomalie ???
Parce qu'avec le code qu'on me donne plus haut, ou y a une fenêtre, on rempli les champs, ça envoi le mail et ça fonctionnait impeccable.
Depuis que j ai fait les modifs pour enlever cette fenêtre et faire tout tout seul ça marche plus. C pour ça c peut être de ma faute...
Merci
bloodwolff
Membre émérite
Messages : 655 Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status :
Hors ligne
#13
Message
par bloodwolff » dim. 19 déc. 2010 01:25
$username et $pass , laisse sa vide sa sert seulement si tu utilise Gmail comme serveur smtp
Et sinon pourquoi ya plein de nouvelle variable avec des "=" dans ton appel de la fonction !
Code : Tout sélectionner
$mail= INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, "", "", "", "", "", 25, 0)
Compte skype : bloodwolfff
lokomass
Niveau 5
Messages : 128 Enregistré le : mer. 15 déc. 2010 10:21
Status :
Hors ligne
#14
Message
par lokomass » dim. 19 déc. 2010 11:32
ET voilààààà j'ai réussi grâce à vous tous, sans Wireshark (merci lol).
J'ai un peu bricoler et me suis servi de vos conseils à tous. Voici le code fonctionnel, et complet pour un envoyer un mail :
► Afficher le texte
Code : Tout sélectionner
;====================================================== Envoi Mail Confirm =======================================================
func SendMail()
$s_SmtpServer = _INetGetSource("http://www.autoitscript.fr/smtp.php")
$s_FromName = "Lokomass"
$s_FromAddress = "xxxxxxxxxxxx" ;Adresse d'envoi
$s_ToAddress = "xxxxxxxxxxxxx" ;Adresse de reception
$s_CcAddress = ""
$s_BccAddress = ""
$s_Username = "xxxxxxxxxxxxxx" ;Login du compte gmail
$s_Password = "xxxxxxxxxxxxxxx" ;Pswd du compte gmail
$IPPort = 25
$ssl = 0
$mail=""
$as_Body = $SujetMail
$s_AttachFiles = ""
$s_Subject = "Sauvegarde Terminée"
$mail= 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)
EndFunc
Func 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)
$objEmail = ObjCreate("CDO.Message")
$objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
$objEmail.To = $s_ToAddress
Local $i_Error = 0
Local $i_Error_desciption = ""
If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
$objEmail.Subject = $s_Subject
If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
$objEmail.HTMLBody = $as_Body
Else
$objEmail.Textbody = $as_Body & @CRLF
EndIf
If $s_AttachFiles <> "" Then
Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
For $x = 1 To $S_Files2Attach[0]
$S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
If FileExists($S_Files2Attach[$x]) Then
$objEmail.AddAttachment ($S_Files2Attach[$x])
Else
$i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
SetError(1)
return 0
EndIf
Next
EndIf
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
If $s_Username <> "" Then
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
EndIf
If $Ssl Then
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
EndIf
$objEmail.Configuration.Fields.Update
$objEmail.Send
if @error then
SetError(2)
return
EndIf
EndFunc
Func MyErrFunc()
Return
EndFunc
Un grand merci encore à vous tous, pour votre aide