[R] Script pour envoyer un fichier par mail

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

[R] Script pour envoyer un fichier par mail

#1

Message par valocool »

Bonsoir, j'essaye de faire un script qui m'enverrai un fichier texte par mail mail il y'a un probleme ... rien ne se passe. voila le script utilisé:

Code : Tout sélectionner

$NomFichierOriginal = "C:\Documents and Settings\Simon\Bureau\Doc.txt"


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

func _ExpedMail()

; Déclaration paramètres mail.au3
$s_SmtpServer = "smtp.yopmail.com"            ; address for the smtp-server to use - REQUIRED
$s_FromName = "Report"              ; name from who the email was sent
$s_FromAddress = "jean@yopmail.com" ; address from where the mail should come
$s_ToAddress = "seminaire@yopmail.com"          ; destination address of the email - REQUIRED
$s_CcAddress = ""                               ; address for cc - leave blank if not needed
$s_BccAddress = ""                              ; address for bcc - leave blank if not needed
$s_Username = "jean@yopmail.com"      ; 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
$mail="Document"
$as_Body = "Autoit"
$s_AttachFiles =$NomFichierOriginal
$mail=_INetSmtpMailCom ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddr
EndFunc
Modifié en dernier par valocool le sam. 09 janv. 2010 23:49, modifié 3 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Script pour evoyer par mail

#2

Message par Tlem »

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

Re: [..] Script pour envoyer un fichier par mail

#3

Message par Tlem »

L'avant dernière ligne est fausse. Déjà, il y à une erreur dans la syntaxe et à première vue, il manque des paramètres, ainsi q'une parenthèse à la fin de la ligne.

En plus de cela, vous n'indiquez pas d'include, et d'après la version la plus récente de AutoIt la fonction _INetSmtpMailCom() n'existe pas ... :lol:
Donc vous avez oublié de mettre le code de cette fonction (http://www.autoitscript.fr/forum/viewto ... 4713#p4713)
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é".
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#4

Message par valocool »

Merci de votre aide, voila comment j'ai modifier mais toujours rien :s

Code : Tout sélectionner

$NomFichierOriginal = "C:\Documents and Settings\Simon\Bureau\Doc.txt"


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

func _ExpedMail()

; Déclaration paramètres mail.au3
$s_SmtpServer = "smtp.yopmail.com"            ; address for the smtp-server to use - REQUIRED
$s_FromName = "Report"              ; name from who the email was sent
$s_FromAddress = "jean@yopmail.com" ; address from where the mail should come
$s_ToAddress = "seminaire@yopmail.com"          ; destination address of the email - REQUIRED
$s_CcAddress = ""                               ; address for cc - leave blank if not needed
$s_BccAddress = ""                              ; address for bcc - leave blank if not needed
$s_Username = "jean@yopmail.com"      ; 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
$mail="Document"
$as_Body = "Autoit"
$s_AttachFiles =$NomFichierOriginal
$mail=_INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddr)
EndFunc
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#5

Message par Tlem »

Vous devriez lire un peut mieux les réponses qu'on vous donne. :evil:
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é".
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#6

Message par valocool »

La c'est peut etre mieu ^^" ? mais il n' y a toujours rien dans la boite mail :s

Code : Tout sélectionner

$NomFichierOriginal = "C:\Documents and Settings\Simon\Bureau\Doc.txt"


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

func _ExpedMail()

$s_SmtpServer = "smtp.yopmail.com"              ; address for the smtp-server to use - REQUIRED
$s_FromName = "VaL"                      ; name from who the email was sent
$s_FromAddress = "Jean@yopmail.com" ;  address from where the mail should come
$s_ToAddress = "seminaire@yopmail.com"   ; destination address of the email - REQUIRED
$s_Subject = "Report"                   ; subject from the email - can be anything you want it to be
$as_Body = "Report File"                             ; the messagebody from the mail - can be left blank but then you get a blank mail
$s_AttachFiles = $NomFichierOriginal                      ; the file you want to attach- leave blank if not needed
$s_CcAddress = ""       ; address for cc - leave blank if not needed
$s_BccAddress = ""     ; address for bcc - leave blank if not needed
$s_Username = "Jean@yopmail.com"                    ; 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

EndFunc



Func _INetSmtpMail($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)
    $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
;Authenticated SMTP
    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
;Update settings
    $objEmail.Configuration.Fields.Update
; Sent the Message
    $objEmail.Send
    if @error then
        SetError(2)
        return $oMyRet[1]
    EndIf
EndFunc ;==>_INetSmtpMailCom

 
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#7

Message par Tlem »

:shock:
Je suis consterné ... :cry:

Je vous donne un lien dans lequel il y a un code fonctionnel et vous n'êtes même pas capable de faire un copier/coller ...
C'est vraiment affligeant.
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é".
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#8

Message par valocool »

Si je copie/colle j'ai droit a un message d'erreur me disant "Error Code: 2 Rc: Le transport a échoué dans sa connexion".
Voila le script, j'ai mofier : _INetSmtpMailcom par _INetSmtpMail

Code : Tout sélectionner

;##################################
; Include
;##################################
#Include<file.au3>
;##################################
; Variables
;##################################
$s_SmtpServer = "smtp.yopmail.com"              ; address for the smtp-server to use - REQUIRED
$s_FromName = "VaL"                      ; name from who the email was sent
$s_FromAddress = "jean@yopmail.com" ;  address from where the mail should come
$s_ToAddress = "seminaire@yopmail.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 = "C:\Documents and Settings\Simon\Bureau\doc.txt"                       ; the file you want to attach- leave blank if not needed
$s_CcAddress = ""       ; address for cc - leave blank if not needed
$s_BccAddress = ""     ; address for bcc - leave blank if not needed
$s_Username = "jean@yopmail.com"                    ; 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

;##################################
; Script
;##################################
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$rc = _INetSmtpMail($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)
If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & "  Rc:" & $rc)
EndIf
;

Func _INetSmtpMail($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)
    $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
;Authenticated SMTP
    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
;Update settings
    $objEmail.Configuration.Fields.Update
; Sent the Message
    $objEmail.Send
    if @error then
        SetError(2)
        return $oMyRet[1]
    EndIf
EndFunc ;==>_INetSmtpMailCom
;
;
; Com Error Handler
Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description,3)
    ConsoleWrite("### COM Error !  Number: " & $HexNumber & "   ScriptLine: " & $oMyError.scriptline & "   Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
EndFunc ;==>MyErrFunc
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#9

Message par valocool »

J'ai changer l'adresse d'envoie par une adresse Gmail ca a bien fonctionné donc peut etre que c'est un probleme de port ou de serveur SMTP de la part de yopmail ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#10

Message par Tlem »

Sûrement ...
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
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#11

Message par matwachich »

Perso, j'utilise la meme fonction pour envoyer des mails (_INetSmtpMailCom) avec Gmail sur port 465 et avec ssl = 1, ca marche impec!

J'ai beaucoup essayer avec d'autres (hotmail) mais j'y arrive pa! et puis j'ai plus cherché car gmail avait réglé mon problème!

Sinon, je sais que l'on peut utilisé un mini serveur SMTP installer sur son pc et utilisé la fonction _INetSmtpMail() déja présente dans autoit, avec comme serveur smtp "localhost" ou 127.0.0.1, mais la le problème c'est que si vous voulez envoyer un mail a une adresse genre hotmail ou yahoo, bah y'a de fortes chanses qu'il soit refusé car il vient d'une machine personelle (pour lutter contre le spam!)
En plus faudrait que les ports soit ouverts (le 25), ce qui n'est pas le ca pour moi, c'est mon FAI qui bloque tout, et ils ne veulent rien entendre quand on leur dit qu'on à besoin des ports! (pour la sécurité)
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#12

Message par valocool »

Merci de ton aide =)
Mais j'ai encore besoin de toi:

Ce script pour envoyer le fichier par mail, je vais l'inserer dans une boucle (While/Wend) donc j'aimerais specifier que si ca ne fait pas 1H il ne doit pas l'envoyer et doit passer a la suite du script.

Pourrais-tu encore m'aider ^^" ?
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#13

Message par matwachich »

Bah si j'ai bien compris tout ce que tu dois faire c'est d'ajouter un Sleep:

Code : Tout sélectionner

While 1
_INetSmtpMailCom(.............)
Sleep(1000*60*60) ;parceque c'est en milisecondes: 1000*60sec*60min
WEnd
 
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#14

Message par valocool »

Non ce n'est pas ca que je veux car si j'utilise Sleep le reste du script ne fonctionnera pas ...
Donc moi je veux utiliser une fonction qui calculerai le temps a partir du dernier envoi et toutes les heures il envoie le document.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#15

Message par Tlem »

AdlibRegister()
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é".
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#16

Message par valocool »

Merci Tlem mais j'ai un message d'erreur "Line 39 Error: "Func" statement has no matching "End Func". en lancant le script voila ce que j'ai fait:

Code : Tout sélectionner

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
AdlibRegister("email"[, 60000] )
;##################################
; Include
;##################################
#Include<file.au3>
;##################################
; Variables
;##################################
Func email()
$s_SmtpServer = "smtp.gmail.com"              ; address for the smtp-server to use - REQUIRED
$s_FromName = "VaL"                      ; name from who the email was sent
$s_FromAddress = "valentin.elhage@gmail.com" ;  address from where the mail should come
$s_ToAddress = "valentinelage5@hotmail.com"   ; destination address of the email - REQUIRED
$s_Subject = "Report"                   ; subject from the email - can be anything you want it to be
$as_Body = "Report"                             ; the messagebody from the mail - can be left blank but then you get a blank mail
$s_AttachFiles = "C:\Documents and Settings\Simon\BureauDoc.txt"                       ; the file you want to attach- leave blank if not needed
$s_CcAddress = ""       ; address for cc - leave blank if not needed
$s_BccAddress = ""     ; address for bcc - leave blank if not needed
$s_Username = "valentin.elhage@gmail.com"                    ; 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 = 465                              ; port used for sending the mail
$ssl = 1                                  ; 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

;##################################
; Script
;##################################
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$rc = _INetSmtpMail($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl)
If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & "  Rc:" & $rc)
EndIf
;

Func _INetSmtpMail($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)
    $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 $Ss2Attach = 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
;Authenticated SMTP
    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
;Update settings
    $objEmail.Configuration.Fields.Update
; Sent the Message
    $objEmail.Send
    if @error then
        SetError(2)
        return $oMyRet[1]
    EndIf
EndFunc ;==>_INetSmtpMailCom

;
; Com Error Handler
Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description,3)
    ConsoleWrite("### COM Error !  Number: " & $HexNumber & "   ScriptLine: " & $oMyError.scriptline & "   Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
EndFunc ;==>MyErrFunc

EndFunc
 
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#17

Message par Tlem »

Heu, vous n'allez pas mettre tout le code à chaque fois que vous avez une erreur tout de même !!! :shock:

Et puis au lieu de demander de l'aide à tout bout de champ, vous devriez chercher un peut.

"Line 39 Error: "Func" statement has no matching "End Func" cette ligne me parait des plus évidente. Il suffit de traduire pour comprendre.
En plus vous avez mis la fonction AdlibRegister() tel que écrite dans la l'aide, mais ce qui est entre crochet sont des options, donc si vous utilisez l'option, vous n'avez pas besoin d'utiliser les crochets (un simple coup d'œil sur l'exemple aurait suffit.).

Je vais vous demander de faire un peut plus d'efforts et de recherche, car poser une question ou écrire une fonction comme vous le faites, signifie tout simplement que vous voulez faire votre script le plus rapidement possible mais en fournissant le minimum d'effort.

La communauté, n'est pas là pour subvenir aux besoins de personne ayant une telle attitude. La prochaine fois je supprime l'intégralité du message. :evil:
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é".
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#18

Message par Habibsbib »

Tlem a écrit :AdlibRegister()
Bonne idée.

Mais il va falloir maintenir ton ordinateur allumé quotidiennement...

Si tu n'as pas réussi à traduire l'erreur : supprime le dernier "EndFunc" de ton code :roll:
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#19

Message par Habibsbib »

Moi ça marche pas avec InetSmtpMailCom. J'utilise GMail, $ssl = 1, $IPPORT 465. Quelqu'un peut m'aider ?
valocool
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 05 janv. 2010 21:23
Status : Hors ligne

Re: [..] Script pour envoyer un fichier par mail

#20

Message par valocool »

Bon la fonction AdLib ne repondait pas a mes besoin donc j'ai simplement fait un script mail, séparé du script principal, s'il detecte le fichier il envoie le mail puis un Sleep de 1H pour que la boucle reparte.
Et sinon j'aurai besoin de connaitre a quoi correspond la touche Enter en hexadecimal (je crois) normalement c'est 0D mais lorsque je met un _IsPressed(0D) il ne reconait pas la touche :s
Répondre