elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Script Batch para enviar email
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Script Batch para enviar email  (Leído 31,922 veces)
vpluque

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Script Batch para enviar email
« en: 30 Marzo 2011, 13:44 pm »

Hola!
estaria interesado en mandar un email con un texto y si es posible un archivo adjunto desde un archivo.bat

Se puede realizar?

he probado con:

echo hola | mail ejemplo@gmail.com

y nada!!

Gracias


« Última modificación: 30 Marzo 2011, 14:36 pm por vpluque » En línea

madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: Script Bash para envial email
« Respuesta #1 en: 30 Marzo 2011, 14:02 pm »

Es Bash o Batch?

En Bash se puede hacer así:

Código
  1. #!/bin/bash
  2. # asunto
  3. SUBJECT="SET-EMAIL-SUBJECT"
  4. # Destinatario
  5. EMAIL="usuario@gmail.com"
  6. # Mensaje
  7. EMAILMESSAGE="/tmp/emailmessage.txt"
  8. echo "Esto es una prueba"> $EMAILMESSAGE
  9. echo "Probando" >>$EMAILMESSAGE
  10. # llamar a /bin/mail para enviarlo
  11. /bin/mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE

Esto va en Scripting.


En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
vpluque

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Script Bash para envial email
« Respuesta #2 en: 30 Marzo 2011, 14:04 pm »

lo queria hacer en batch, en windows
En línea

madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: Script Bash para envial email
« Respuesta #3 en: 30 Marzo 2011, 14:16 pm »

Pues el titulo dice Bash. Decídete!

En Batch he visto algunos códigos aunque no he probado ninguno:

Código
  1. @ECHO OFF
  2. SET ERRORS=0
  3. :: Use your own mappings and search strings here
  4. NET USE P: | FIND /I "%username%" >NUL 2>NUL
  5. IF ERRORLEVEL 1 CALL :ErrorMsg P:
  6. NET USE S: | FIND /I "system" >NUL 2>NUL
  7. IF ERRORLEVEL 1 CALL :ErrorMsg S:
  8. :: Create an e-mail message if any errors were detected
  9. IF %ERRORS% GEQ 1 CALL :Mail
  10. :: Clear variables used in this batch file
  11. FOR %%A IN (BODY DATE ERRORS LINE MESSAGE TIME) DO SET %%A=
  12. GOTO :EOF
  13.  
  14. :ErrorMsg
  15. SET /A ERRORS = %ERRORS% + 1
  16. NET USE %1 >NUL 2>NUL
  17. SET BODY=%BODY%%%0D%%0ADrive%%20%1%%20not%%20mapped
  18. GOTO :EOF
  19. )
  20. FOR /F "TOKENS=3* DELIMS= " %%A IN ('NET USE %1 ^| FIND "Local name"') DO SET MESSAGE=Drive%%20%%A%%20mapped%%20to%%20
  21. :: Replacement of backslashes "\" by "%%5C"
  22. :: prevents interpretation of "\n" as CR/LF
  23. FOR /F "TOKENS=3,4* DELIMS=\ " %%A IN ('NET USE %1 ^| FIND "Remote name"') DO SET MESSAGE=%MESSAGE%%%5C%%5C%%A%%5C%%B
  24. SET BODY=%BODY%%%0D%%0A%MESSAGE%
  25. GOTO :EOF
  26.  
  27. :Mail
  28. FOR /F "TOKENS=2*" %%A IN ('DATE/T') DO SET DATE=%%A
  29. FOR /F %%A IN ('TIME/T') DO SET TIME=%%A
  30. START mailto:helpdesk@ourdomain.com?subject=Drive%%20mapping%%20error^&body=At%%20%DATE%,%%20%TIME%,%%20user%%20%USERNAME%%%20encountered%%20the%%20following%%20drive%%20mapping%%20error(s)%%20on%%20%COMPUTERNAME%:%%0D%%0A%BODY%
  31. GOTO :EOF
_Fuente del script.


Fíjate que es fácil de hacer, la línea mas importante es esta:

Código
  1. START mailto:helpdesk@ourdomain.com?subject=Drive%%20mapping%%20error^&body=At%%20%DATE%,%%20%TIME%,%%20user%

Si tienes instalado Exchange puedes usar MAPISend.exe:

Código:
C:\> MAPISend –u “Exchange Profile” –r mad@ehn.net –s “Asunto del Email?” –m “Enviando email desde MAPISend!!!”


Aquí(petri.co.il/send_mail_from_script.htm) tienes mas formas de enviar un email desde la consola.
En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
vpluque

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Script Bash para envial email
« Respuesta #4 en: 30 Marzo 2011, 14:30 pm »

Ese batch no me vale ya que sale la ventana de enviar correo y yo lo que quiero es que no salga nada por pantalla, simplemente enviar el correo y ya!

he visto que se puede mandar con un programa que se llama blat, pero no se configurarlo.
Alguien lo ha utilizado??

Saludos
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Script Batch para enviar email
« Respuesta #5 en: 31 Marzo 2011, 00:53 am »

Puedes ocultar la salida de cualquier comando añadiendole ">nul 2>&1" al final del comando, así que el del mapisend que te ha dicho madpitbull te sirve, bueno, lo que te he dicho te sirve con todos,no muestra NADA en la pantalla, otra cosa es que la funcion del comando de mandar emails funcione correctamente... xD
En línea

No he vuelto, solo estoy de paso.
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Script Batch para enviar email
« Respuesta #6 en: 1 Abril 2011, 04:05 am »

Me uno al problema...

Aqui podeis descargar el blat...
http://sourceforge.net/projects/blat/files/


¿Porque este comando en Blat no me funciona?

Código:
blat.exe -server smtp.live.com -f csg1986@hotmail.com -u csg1986 -pw MIPASSWORD -subject "hola que pasa" -body "kekekekepasa" -to pitoloko1986@gmail.com



Obtengo como resultado este error:

Código:
Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19)

Sending stdin.txt to pitoloko1986@gmail.com
Subject: hola que pasa
Login name is csg1986@hotmail.com
The SMTP server does not require AUTH LOGIN.
Are you sure server supports AUTH?
The SMTP server does not like the sender name.
Have you set your mail address correctly?


dice algomalo del auth, así que he intentado hacerlo sin -u y pw así:

Código:
blat.exe -server smtp.live.com -f csg1986@hotmail.com -subject "hola que pasa" -body "kekekekepasa" -to pitoloko1986@gmail.com

y el resultado es:

Código:
Sending stdin.txt to pitoloko1986@gmail.com
Subject: hola que pasa
Login name is csg1986@hotmail.com
The SMTP server does not like the sender name.
Have you set your mail address correctly?


Tambien he probado a hacer lo mismo cambiando de servidor, usando smtp.google.com, y en ese no me dice nada... pero tampoco se manda el email.
« Última modificación: 1 Abril 2011, 04:08 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
Esgrimidor

Desconectado Desconectado

Mensajes: 152


Ver Perfil
Re: Script Batch para enviar email
« Respuesta #7 en: 22 Junio 2012, 19:52 pm »

Me interesa revivir este post tan antiguo ya que aparece un código batch, que modificado, me podría valer.
Yo utilizo el cliente Thunderbird, pero en modo portable.
De forma que :

Me interesa que el batch no funcione mirando cuál es el cliente de correo por defecto. He puesto TB porque también lo tengo instalado en modo no portable.
Pero todo está en la versión portable, cuentas definidas, y todos los correos envíados y recibidos; están en la versión portable.

De forma que :
1) El batch que aparece más arriba me funciona bien si tengo abierta mi versión portable
2) no me funciona bien si no tengo abierto el cliente de correo TB portable, porque va a abrir la versión portable donde ni siquiera tengo definidas las cuentas, y que además no me interesa que el email envíado se me registre allí.

Luego me gustaría un batch que pudiera configurar para decirle que cliente de correos tiene que usar, independientemente de la configuración windows (creo que hay un modo de engañar al s.o. cuando se tiene TB portable, pero no me lo he mirado).

Gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines