Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <String.au3>
Opt("TrayMenuMode", 1)
opt("TrayAutoPause",0)
Opt("WinWaitDelay",200)
Opt("WinTitleMatchMode",2)
Opt("WinDetectHiddenText",1)
opt("WinSearchChildren",1)
Opt("MouseCoordMode",0)
;############################## Zimbra.ini
zimbra_ini() ; initialisation des parametre de connexion au Pop3
;##################################### Création du Tray
$mail = _notifier()
$m_navigateur = TrayCreateItem("Ouvrir Zimbra V3.0")
TrayCreateItem("")
$m_connect = TrayCreateItem("Zimbra mail")
$m_mail= TrayCreateItem($mail & " Message(s)")
TrayCreateItem("")
$m_open = TrayCreateItem("Initiliser zimbra.ini")
TrayCreateItem("")
$m_exit = TrayCreateItem("Quitter")
TraySetState()
TraySetClick(9)
GUISetState(@SW_SHOW)
;~ TraySetIcon(@ScriptDir & "\ico2.ico")
$debut = TimerInit()
While 1
$msg1 = TrayGetMsg()
$diff=TimerDiff($debut)
if $diff>900000 then ;15 minutes = 60000*15
$mail=_notifier()
TrayItemSetText($m_mail, $mail & " Message(s)")
$debut = TimerInit()
EndIf
Select
Case $msg1 = 0
ContinueLoop
Case $msg1 = $m_mail
TrayItemSetText($m_mail, _notifier() & " Message(s)")
Case $msg1 = $m_navigateur
run(@ScriptDir & "\zimbra_navigateur.exe")
Case $msg1 = $m_connect
start()
case $msg1 = $m_open
initialise()
Case $msg1 = $m_exit
exit
EndSelect
WEnd
func start()
#include "_html.au3" ;script générant le fichier HTML complité avec les éléments du INI crypté
; ce fichier contient du Javascript pour soumettre directement les info du compte Pop3 au serveur
ShellExecute(@ScriptDir & "\zimbra.htm")
sleep(2000)
if fileExists(@ScriptDir & "\zimbra.htm") then filedelete(@ScriptDir & "\zimbra.htm")
EndFunc
func initialise()
$continue=msgbox(1,"Zimbra Mail","Ré-iniatilsation Zimbra.ini " & @lf & @lf & _
"Etes vous sur de vouloire poursuivre ?, cette opération effacera le fichier zimbra.ini existant")
if $continue=1 Then
if fileExists(@ScriptDir & "\zimbra.ini") then filedelete(@ScriptDir & "\zimbra.ini")
zimbra_ini()
endif
EndFunc
func zimbra_ini()
#include "_ini.au3" ; script pour lire des données cryptées du Ini sur le compte Pop3
endfunc
func _notifier()
TCPStartup ()
$a = _pop3compt (_Pop3start ("pop.free.fr", 110, $id, $pass))
if $a>=0 then
msgbox(64,"Mail Notificateur", $a & " Messages dans la Boîte de réception",5)
return $a
endif
if $a=-1 then
msgbox (64,"Mail Notificateur", "Connexion au serveur échoué",10)
return "?" ; pas de connexion possible
endif
TCPCloseSocket ($pop3_socket)
TCPShutDown ()
EndFunc
Func _Pop3start ($sServer, $iPort, $sUser, $sPass)
;connect
$sock = TCPConnect (TCPNameToIP ($sServer), $iPort);
;~ ou avec L'ip serveur ->
;~ $sock = TCPConnect ($sServer, $iPort)
If @error Then Return SetError (3, @ScriptLineNumber, -1)
$iTime = TimerInit ()
Do
If TimerDiff ($iTime) > 15000 Then Return SetError (1, @ScriptLineNumber, -1)
$sRecv = TCPRecv($sock, 32)
Until StringLeft($sRecv, 3) = "+OK"
;auth
TCPSend ($sock, "USER "&$sUser&@CRLF)
$iTime = TimerInit ()
Do
If TimerDiff ($iTime) > 15000 Then Return SetError (1, @ScriptLineNumber, -1)
$sRecv = TCPRecv($sock, 32)
Sleep (10)
If StringLeft($sRecv, 4) = "-ERR" Then Return SetError (2, @ScriptLineNumber, -1)
Until StringLeft($sRecv, 3) = "+OK"
TCPSend ($sock, "PASS "&$sPass&@CRLF)
Do
If TimerDiff ($iTime) > 15000 Then Return SetError (1, @ScriptLineNumber, -1)
$sRecv = TCPRecv($sock, 32)
Sleep(10)
If StringLeft($sRecv, 4) = "-ERR" Then Return SetError (2, @ScriptLineNumber, -1)
Until StringLeft($sRecv, 3) = "+OK"
Return $sock
EndFunc
Func _pop3compt ($sock)
TCPSend ($sock, "STAT"&@CRLF)
$iTime = TimerInit ()
Do
If TimerDiff ($iTime) > 15000 Then Return SetError (1, @ScriptLineNumber, -1)
$sRecv = TCPRecv($sock, 32)
Sleep(10)
Until StringLeft($sRecv, 3) = "+OK"
$aSplit = StringSplit ($sRecv, " ")
If $aSplit[0] < 3 Then Return SetError (2, @ScriptLineNumber, -1)
Return $aSplit[2]
EndFunc