Form-Modelo multi correo de rutina. Enviar email->base datos

y programas personales para otros como tu, puede que te corrijan ;)

Form-Modelo multi correo de rutina. Enviar email->base datos

Notapor BasicOs » 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.

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 = "miemail@gmail.com", $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", "destino@gmail.com")
$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=*TU@MAIL.COM,juan@RU.COM
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



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. :smt024 :smt024

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:)
Adjuntos
ayudacorreos.zip
Fuentes, ini config y ejecutable
(513.57 KiB) 64 veces
ayudacorreo.jpg
ayudacorreo.jpg (22.84 KiB) Visto 876 veces
Avatar de Usuario
BasicOs
Site Admin
 
Mensajes: 2048
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)

Volver a esScripts - Programas - Abre tus creaciones maravillosas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados

cron