Form-Modelo multi correo de rutina. Enviar email->base datos
Publicado: 18 Jun 2014, 10:59
A veces queremos mandar la misma información a la misma gente, solo cambian pocos datos. En este caso usamos modelos o forms, o interfaces más simplificadas en la que solo rellenamos estos datos que cambian.
Este es un form válido para usarlo con múltipes correos, gmail, yahoo, correos propietarios con interfaces especiales, outlook etc.. En la pantalla de este correo rellenamos la información procesada del form:
1.- Una información cambiante que es TIPO
2.- La fecha que queramos
3.- El nombre de una persona o producto, y su abreviatura (iniciales)
4.- El mail destino.
Puede ser un nuevo cliente que enviamos a la central con un TIPO de producto en el que está interesado. O bien sirve como facilitador de envio de correos.
Al enviar estos correos de esta manera podemos generar en el correo destino una base de datos de correos normalizados (basado en el buscador del correo) donde podremos localizar información facilmente cuando queramos. Usamos el correo para la gestión y almacenamiento de información preparada para ser usada por una futura base de datos o un sistema de gestión.
Fichero ini donde está el modelo a rellenar, y se almacenan los datos que se van añadiendo, para posterior uso.
Para que funcione hacemos click en cualquiera de los tres botones: Destinatario, asunto o texto. Y luego clicamos en el correo para "PEGAR" la información de lo que elegimos. El asunto (por ejemplo), que viene modificada por el modelo previo.
Este es un Form creado con AutoitPortable vers. Mayo-2014. Es una versión Beta funcional. Ya que hay detalles y mejoras pendientes como la rapidez de pegado.... :) Bienvenidas la participación y mejoras.
Salu22:)
Este es un form válido para usarlo con múltipes correos, gmail, yahoo, correos propietarios con interfaces especiales, outlook etc.. En la pantalla de este correo rellenamos la información procesada del form:
1.- Una información cambiante que es TIPO
2.- La fecha que queramos
3.- El nombre de una persona o producto, y su abreviatura (iniciales)
4.- El mail destino.
Puede ser un nuevo cliente que enviamos a la central con un TIPO de producto en el que está interesado. O bien sirve como facilitador de envio de correos.
Código: Seleccionar todo
;creado con AutoitPortable Mayo-2014 de autoit.es
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\..\favicon.ico
#AutoIt3Wrapper_Outfile=ayudacorreos.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;creado con AutoitPortable Mayo-2014 de autoit.es
;falta poner espera en slider
Global $wdestinatario = "[email protected]", $wasunto = "Tipo de asunto **usuario1 del día **fecha "
Global $wtexto = "Buenos días, adjunto se remite para el asunto el **usuario2 del día **fecha " & @CRLF
$wtexto = $wtexto & "Saludos.. **saltodelinea "
Global $wEnvio = "", $wseleccionartodo = 0, $wespera = 2000,$wEleccion=""
;IniWrite("ayudacorreos.ini","Configuracion","destinatario",$wdestinatario)
;IniWrite("ayudacorreos.ini","Configuracion","asunto",$wasunto)
;IniWrite("ayudacorreos.ini","Configuracion","texto",$wtexto)
;IniWrite("ayudacorreos.ini","Configuracion","rapidez",$wespera)
$wdestinatario = IniRead("ayudacorreos.ini", "Configuracion", "destinatario", $wdestinatario)
$wasunto = IniRead("ayudacorreos.ini", "Configuracion", "asunto", $wasunto)
$wtexto = IniRead("ayudacorreos.ini", "Configuracion", "texto", $wtexto)
$wEleccion = IniRead("ayudacorreos.ini", "Configuracion", "eleccion", $wEleccion)
$wEleccion = StringReplace($wEleccion, ",", "|")
$wUsuarioDefecto = IniRead("ayudacorreos.ini", "Configuracion", "usuariodefecto", "Nadia Rodríguez")
$wLosUsuariosDefecto1 = IniRead("ayudacorreos.ini", "Configuracion", "losusuariosdefecto", "Nadia Rodríguez")
$wLosUsuariosDefecto = StringReplace($wLosUsuariosDefecto1, ",", "|")
$wLosUsuariosDefecto = StringReplace($wLosUsuariosDefecto, "*", "")
$wLosDestDefecto1 = IniRead("ayudacorreos.ini", "Configuracion", "losdestinatariosdefecto", "[email protected]")
$wLosDestDefecto = StringReplace($wLosDestDefecto1, ",", "|")
$wLosDestDefecto = StringReplace($wLosDestDefecto, "*", "")
$wespera = IniRead("ayudacorreos.ini", "Configuracion", "rapidez", $wespera)
;HotKeySet("F12","iniciaApp")
;While 1
; Sleep(250)
; WEnd
Func iniciaApp()
EndFunc ;==>iniciaApp
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
#Region ### START Koda GUI section ### Form=c:\documents and settings\eadefezl\mis documentos\downloads\autoit\autoitportable\mis programas\ayudacorreos.kxf
$Form1_1 = GUICreate("Envio de Emails", 314, 277, 269, 153, -1, BitOR($WS_EX_TOPMOST, $WS_EX_WINDOWEDGE))
$bdestinatarios = GUICtrlCreateButton("Destinatarios", 216, 136, 75, 41)
$basunto = GUICtrlCreateButton("Asunto", 216, 180, 75, 33)
$btexto = GUICtrlCreateButton("Texto", 216, 216, 75, 33)
$Group1 = GUICtrlCreateGroup("Introducir datos", 8, 0, 273, 129)
;$iusuario1 = GUICtrlCreateInput($wUsuarioDefecto, 89, 28, 177, 21)
$cdestinatario = GUICtrlCreateCombo("Elegir Email", 89, 19, 177, 21, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData($cdestinatario, $wLosDestDefecto, StringLeft($wLosDestDefecto, StringInStr($wLosDestDefecto, "|") - 1))
$ldestinatario = GUICtrlCreateLabel("Email ...", 18, 19, 49, 17)
$cusuario1 = GUICtrlCreateCombo("Elegir Usuario", 89, 45, 177, 21, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData($cusuario1, $wLosUsuariosDefecto, StringLeft($wLosUsuariosDefecto, StringInStr($wLosUsuariosDefecto, "|") - 1))
$lusuario2 = GUICtrlCreateLabel("Usuario ...", 18, 45, 49, 17)
$Date1 = GUICtrlCreateDate(_Now(), 18, 69, 186, 21)
$ctipos = GUICtrlCreateCombo("Elegir tipo de correo", 20, 96, 185, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData($ctipos, $wEleccion, StringLeft($wEleccion, StringInStr($wEleccion, "|") - 1))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$idestinatarios = GUICtrlCreateInput($wdestinatario, 8, 144, 201, 21)
$iasunto = GUICtrlCreateInput($wasunto, 8, 184, 201, 21)
$itexto = GUICtrlCreateInput($wtexto, 7, 224, 201, 21)
$cborraanterior = GUICtrlCreateCheckbox("Borra Texto", 216, 256, 73, 17)
$bborratexto = GUICtrlCreateButton("B", 288, 256, 20, 20)
$Slider1 = GUICtrlCreateSlider(24, 256, 169, 9)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$wAnadeIni = ""
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $bdestinatarios, $basunto, $btexto, $bborratexto
Switch $nMsg
Case $bdestinatarios
$wEnvio = StringReplace(GUICtrlRead($idestinatarios), "**emails", GUICtrlRead($cdestinatario))
If Not StringInStr(GUICtrlRead($cdestinatario), $wLosDestDefecto1) Then
$wAnadeIni = StringStripWS(StringReplace($wLosDestDefecto1, "*", "*" & GUICtrlRead($cdestinatario) & ","), $STR_STRIPLEADING + $STR_STRIPTRAILING + $STR_STRIPSPACES)
IniWrite("ayudacorreos.ini", "Configuracion", "losdestinatariosdefecto", $wAnadeIni)
GUICtrlSetData($cdestinatario, GUICtrlRead($cdestinatario), $cdestinatario)
EndIf
Case $basunto
$wEnvio = StringReplace($wasunto, "**usuarioabreviado", poniniciales(GUICtrlRead($cusuario1)))
If Not StringInStr($cusuario1, $wLosUsuariosDefecto1) Then
$wAnadeIni = StringStripWS(StringReplace($wLosUsuariosDefecto1, "*", "*" & GUICtrlRead($cusuario1) & ","), $STR_STRIPLEADING + $STR_STRIPTRAILING + $STR_STRIPSPACES)
IniWrite("ayudacorreos.ini", "Configuracion", "losusuariosdefecto", $wAnadeIni)
GUICtrlSetData($cusuario1, GUICtrlRead($cusuario1), $cusuario1)
EndIf
$wEnvio = StringReplace($wEnvio, "**fecha", GUICtrlRead($Date1))
$wEnvio = StringReplace($wEnvio, "**usuario", GUICtrlRead($cusuario1))
$wEnvio = StringReplace($wEnvio, "**tipo", GUICtrlRead($ctipos))
Case $btexto
$wEnvio = StringReplace($wtexto, "**usuarioabreviado", poniniciales(GUICtrlRead($cusuario1)))
$wEnvio = StringReplace($wEnvio, "**saltodelinea", @CRLF)
$wEnvio = StringReplace($wEnvio, "**usuario", GUICtrlRead($cusuario1))
$wEnvio = StringReplace($wEnvio, "**fecha", GUICtrlRead($Date1))
$wEnvio = StringReplace($wEnvio, "**tipo", GUICtrlRead($ctipos))
Case $bborratexto
$wEnvio = "{SHIFTDOWN}{PGDN}{PGDN}{PGDN}{PGDN}{END}{SHIFTUP}{SHIFTDOWN}{END}{SHIFTUP}{DEL}"
EndSwitch
ToolTip("Click izquierdo del ratón para: " & $wEnvio, 150, 200)
WinSetState("Envio de Emails", "", @SW_HIDE)
If esperaclickDerecho() Then
If _IsChecked($cborraanterior) And $nMsg = $btexto Then
;send("^a") send("{DEL}")
MouseClick("left")
Send("{SHIFTDOWN}")
Send("{PGDN}")
Send("{PGDN}")
Send("{PGDN}")
Send("{PGDN}")
Send("{PGDN}")
Send("{PGDN}")
Send("{END}")
Send("{SHIFTUP}")
Send("{DEL}")
Send("{SHIFTDOWN}")
Send("{END}")
Send("{SHIFTUP}")
Send("{DEL}")
EndIf
If $nMsg = $basunto Then
MouseClick("left")
MouseClick("left")
MouseClick("left")
EndIf
ClipPut($wEnvio)
Send($wEnvio)
EndIf
ToolTip("¿Más?", 80, 20)
WinSetState("Envio de Emails", "", @SW_SHOW)
EndSwitch
WEnd
Func poniniciales($usu)
Local $wUsuarioA = ""
$aUsuario = StringSplit($usu, " ")
For $i = 1 To $aUsuario[0]
$aUsuario[$i] = StringReplace($aUsuario[$i], " ", "")
$wUsuarioA = $wUsuarioA & StringLeft($aUsuario[$i], 1) & "."
Next
Return $wUsuarioA
EndFunc ;==>poniniciales
Func _IsChecked($idControlID)
Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc ;==>_IsChecked
#include <Misc.au3>
#include <MsgBoxConstants.au3>
Func esperaclickDerecho()
Local $hDLL = DllOpen("user32.dll"), $wReturn = 1, $wquetecla = "Enter"
For $i = 1 To 150
Sleep(100)
If _IsPressed("01", $hDLL) Then
;ConsoleWrite("_IsPressed - Shift Key was pressed." & @CRLF)
; Wait until key is released.
While _IsPressed("01", $hDLL)
Sleep(100)
WEnd
Sleep(150)
$wReturn = 1
ExitLoop
EndIf
;ConsoleWrite("_IsPressed - Shift Key was released." & @CRLF)
;ElseIf _IsPressed("1B", $hDLL) Then "The Esc Key was pressed, therefore we will close the application.")
Next
If $i > 50 Then MsgBox(0, "Ayuda Correos", "Tiempo de espera superado sin pulsar " & $wquetecla)
DllClose($hDLL)
If $wReturn = 0 Then
MsgBox(0, "Ayuda Correos", "Saliendo del programa")
Exit
EndIf
Return $wReturn
EndFunc ;==>esperaclickDerecho
Al enviar estos correos de esta manera podemos generar en el correo destino una base de datos de correos normalizados (basado en el buscador del correo) donde podremos localizar información facilmente cuando queramos. Usamos el correo para la gestión y almacenamiento de información preparada para ser usada por una futura base de datos o un sistema de gestión.
Fichero ini donde está el modelo a rellenar, y se almacenan los datos que se van añadiendo, para posterior uso.
Código: Seleccionar todo
[Configuracion]
losusuariosdefecto=*Eduardo HERNANDEZ RODRIGUEZ,Jose GONZÁLEZ GARCÍA
losdestinatariosdefecto=*[email protected],[email protected]
destinatario=**emails
asunto=**tipo **usuarioabreviado del día **fecha
texto=Buenos días, adjunto se remite **tipo del usuario **usuario del día **fecha **saltodelinea Saludos
usuariodefecto=José Suarez
eleccion="COMPRA DE PRODUCTO,REPARACION,PAGO,CONSULTA,CITA,MAS INFO"
rapidez=2000
Este es un Form creado con AutoitPortable vers. Mayo-2014. Es una versión Beta funcional. Ya que hay detalles y mejoras pendientes como la rapidez de pegado.... :) Bienvenidas la participación y mejoras.
Salu22:)