Página 1 de 1
mandar un email automatico
Publicado: 12 Ene 2014, 16:58
por mikeeps2
hola amigos , se podra o exitira algun script que se pueda mandar un mensaje automaticamente usando autoit osea , tener una direccion y un mensaje ya determinado dentro del script , y que solo al ejecutar el script se mande el mensaje deseado
por ejemplo , que cada ves que ejecute el script se mande a un correo determinado (siempre el mismo) el mensaje (siempre el mismo)
lo que trato es que tengo un sensor de moviento en casa , y lo tengo setiado en la pc , me gustaria agregarle a esto que cuando exita algun moviento que registre este sensor , se ejecute un script y me mande un email ... no se si me entiendan y la idea es ejecutable
muchas gracias
Re: mandar un email automatico
Publicado: 12 Ene 2014, 17:56
por mikeeps2
ya encontre un script en el forum de ingles , y trabaja perfecto , lo estoy provando con gmail , la idea es que cuando no este en casa , y alguien entre o pase por delante del sensor de movimiento , me mande un mensaje al celular
Código: Seleccionar todo
;
;##################################
; Include
;##################################
#Include<file.au3>
;##################################
; Variables
;##################################
$SmtpServer = "MailServer" ; address for the smtp-server to use - REQUIRED
$FromName = "Name" ; name from who the email was sent
$FromAddress = "[email protected]" ; address from where the mail should come
$ToAddress = "[email protected]" ; destination address of the email - REQUIRED
$Subject = "Userinfo" ; subject from the email - can be anything you want it to be
$Body = "" ; the messagebody from the mail - can be left blank but then you get a blank mail
$AttachFiles = "" ; the file(s) you want to attach seperated with a ; (Semicolon) - leave blank if not needed
$CcAddress = "[email protected]" ; address for cc - leave blank if not needed
$BccAddress = "[email protected]" ; address for bcc - leave blank if not needed
$Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
$Username = "******" ; username for the account used from where the mail gets sent - REQUIRED
$Password = "********" ; password for the account used from where the mail gets sent - REQUIRED
$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 = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
If @error Then
MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
EndIf
;
; The UDF
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
Local $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])
;~ ConsoleWrite('@@ Debug : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
If FileExists($S_Files2Attach[$x]) Then
ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF)
$objEmail.AddAttachment($S_Files2Attach[$x])
Else
ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
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
If Number($IPPort) = 0 then $IPPort = 25
$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
; Set Email Importance
Switch $s_Importance
Case "High"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
Case "Normal"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
Case "Low"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
EndSwitch
$objEmail.Fields.Update
; Sent the Message
$objEmail.Send
If @error Then
SetError(2)
Return $oMyRet[1]
EndIf
$objEmail=""
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
Re: mandar un email automatico
Publicado: 12 Ene 2014, 18:52
por mikeeps2
bueno ahora me surgio otro imconiente , me gustaria haveces desactivar el script y activarlo cuando yo quiera , como se podra hacer eso , especie de un script que cuando lo ejectue me active el script del sensor , y cuando no lo desee que me trabaje , ejecutar otro script para que me lo desactive , por ejemplo cuando estoy en casa , para poder desactivarlo , sino me estara mandando mensajes cada ves que este en casa tambien
Re: mandar un email automatico
Publicado: 15 Ene 2014, 00:25
por BasicOs
Hola Mike,
Felicidades por Script para la automatización de la vigilancia,
Si puedes publicarlo así vemos el código..
Seguramente lo más rápido es asignar teclas con HotkeySet(), una tecla para que se pare indefinidamente, y la otra para que vuelva al bucle, por ejemplo cambiando el valor a una variable global, $activado=1
Salu22:)
Re: mandar un email automatico
Publicado: 17 Ene 2014, 01:35
por mikeeps2
basicos me podrias mostrar algun exemplo a ver si entiendo lo que me tratas de decir
Re: mandar un email automatico
Publicado: 17 Ene 2014, 16:02
por arkcrew
Buenas,
Mira los hotkeys en la ayuda de autoit, vienen bastante bien explicados (en ingles) con sus respectivos ejemplos, no tiene pérdida. Resumiendo mucho un hotkey es un atajo, asocias una tecla para que cuando se pulse se ejecute una función, en tu caso iniciar/parar tu servicio.
Mira la ayuda y verás que es sencillo.
EDITO:
A lo que se Refiere BasicOs con lo de la variable, es que en un ciclo del tipo: while ($var) wend , $var es la variable que cambias desde el hotkey, es decir, cuando pulsas f1 la variable vale true, por lo que entra el ciclo, si pulsas el f2 por así decir, cambiaria $var a false y saldría del bucle. En el f1 deberías decir también que se inicie la función, ya que cuando paras esta y se cierra el bucle, por más que cambies la variable, el bucle no va a funcionar. Espero haberme explicado
Saludos!