Enviar un correo electrónico a través de un batch de DOS
Elcaprio
Mensajes publicados
73
Estado
Miembro
-
X.A.N.A. Mensajes publicados 216 Estado Miembro -
X.A.N.A. Mensajes publicados 216 Estado Miembro -
Bonjour,
Voici un problema que tengo, debo diseñar un pequeño software (en este caso elegí un batch) para controlar las conexiones remotas en mi empresa (1 CPD y 3 CSD... controlador principal/secundario de dominio para los no iniciados).
En caso de pérdida de conexión, mi batch debe enviar un correo a mi buzón de correo (utilizamos Lotus Notes en la empresa).
Aquí es donde estoy:
@echo off
:bucle
set /a count=count+1
if %count% == 1000 goto :bucle
ping 192.xxx.xxx.xxx
ping 192.xxx.xxx.xxx
rem tantos pings como CSD
for /f %%a in (ping 192.xxx.xxx.xxx) do set respuesta=%%
for /f %%a in (ping 192.xxx.xxx.xxx) do set respuesta2=%%
rem tantos for como pings
if %respuesta% == "tiempo de espera de la solicitud agotado"
A este nivel debería poner mi envío de correo, solo que no encuentro el comando... terminaré con un goto :bucle
No he probado las líneas de comando de arriba (habiendo puesto variables, debo usarlas con el if antes de probar).
¡Gracias a las personas que me respondan!
Aclaro que soy un aprendiz y por tanto no tengo mucha experiencia en programación (comencé en septiembre)
Voici un problema que tengo, debo diseñar un pequeño software (en este caso elegí un batch) para controlar las conexiones remotas en mi empresa (1 CPD y 3 CSD... controlador principal/secundario de dominio para los no iniciados).
En caso de pérdida de conexión, mi batch debe enviar un correo a mi buzón de correo (utilizamos Lotus Notes en la empresa).
Aquí es donde estoy:
@echo off
:bucle
set /a count=count+1
if %count% == 1000 goto :bucle
ping 192.xxx.xxx.xxx
ping 192.xxx.xxx.xxx
rem tantos pings como CSD
for /f %%a in (ping 192.xxx.xxx.xxx) do set respuesta=%%
for /f %%a in (ping 192.xxx.xxx.xxx) do set respuesta2=%%
rem tantos for como pings
if %respuesta% == "tiempo de espera de la solicitud agotado"
A este nivel debería poner mi envío de correo, solo que no encuentro el comando... terminaré con un goto :bucle
No he probado las líneas de comando de arriba (habiendo puesto variables, debo usarlas con el if antes de probar).
¡Gracias a las personas que me respondan!
Aclaro que soy un aprendiz y por tanto no tengo mucha experiencia en programación (comencé en septiembre)
Configuración: Windows XP Internet Explorer 6.0
9 respuestas
-
-
Hola, tengo un problema con blat, cuando intento enviar un correo, me dice (entre comillas, jaja):
Error: No se puede resolver el nombre del servidor
Creo que no encuentra el servidor smtp, aunque estoy usando hotmail tanto para el remitente como para el receptor, y cuando instalé blat, definí el servidor como: smtp.live.fr
¿Alguien podría aclararme, por favor? -
gracias toto, ¡voy a probar!
me había complicado mucho más con esto! jaja
les mantendré informados.
editar: 15/01/2008 16h50
bueno, después de probar no funciona! aunque puede que haya retransmitido mal el comando. Lo he puesto así en mi batch:
start mailto: XXX@XXX.fr ?subject="XXX" ^&body= "XXXXXX"
¿quizás un error de sintaxis? -
oki gracias.
Es complejo ponerlo en marcha como cmd...-
Claro, pero un correo electrónico es una serie de parámetros:
- ¿de quién?
- ¿a quién?
- ¿quién está en copia?
- ¿quién está en copia oculta?
- ¿asunto?
- ¿cuerpo del mensaje?
- ¿adjuntos?
- ¿nombre del servidor de envío SMTP?
--
A+ Blux"Los idiotas, se atreven a todo. Es incluso por eso que los reconocemos"
-
-
-
Bueno, ya está instalado blat.
Aquí hay un fragmento de mi script:
ping -n 3 254.254.254.254
if %ERRORLEVEL% GEQ 3 goto Mail
:mail
blat message.txt -to xxx-xxx@xxx.fr -s "error de red en el nivel del enrutador de Caen"
blat message.txt -to xxx-xxx@xxx.fr -s "error de red en el nivel del enrutador de Caen"
Hasta aquí, hay un problema... envía un correo electrónico incluso si el ping responde cuando debería enviarlo solo en caso de no respuesta. (de ahí el IF)
Luego debo indicarle que ejecute otro script para continuar la cadena (pingueo el enrutador primero, si no hay respuesta el antivirus, si no hay respuesta el switch, etc...) Solo que no recuerdo el comando para ejecutar el segundo script :-(-
Hola,
sé que el tema es antiguo, pero un batch es lineal, es decir, mirará tu IF, si la condición es falsa pasará a la línea siguiente, así que entrará en tu etiqueta :mail.
Si la condición es verdadera, hará lo que le has pedido, es decir, irá a la etiqueta :mail.
Te aconsejo que hagas lo siguiente:
ping -n 3 254.254.254.254
if not %ERRORLEVEL% GEQ 3 goto ok
blat message.txt -to xxx-xxx@xxx.fr -s "error de red en el router de Caen"
blat message.txt -to xxx-xxx@xxx.fr -s "error de red en el router de Caen"
:ok
continuación del código
Entonces, si la condición es verdadera, irá a la etiqueta ok y hará la continuación del código. Si la condición es falsa, irá a la siguiente línea y enviará los correos. Luego irá a la etiqueta ok y ejecutará la continuación del código...
-
-
Bueno, yo lo utilizo, he configurado mis puertos, etc., y me devuelve:
Error: no se puede resolver el servicio.
Mientras que escribí:
blat essais.txt -to xxxxx@xxxx.fr
ensayos.txt está en el mismo directorio que blat.exe =s
ayúdame por favor.-
-
-
-
-
Lo que has dado es una dirección de correo electrónico, pero esta no tiene ninguna existencia 'legal' como dato en la iniciativa de emisión de un mensaje.
Necesitas configurar el servidor SMTP al que vas a enviar tu mensaje, para que lo reenvíe al dominio indicado en el campo de la dirección de correo electrónico de destino.
Puede ser smtp.hotmail.fr..
Consulta la lista aquí:
https://www.commentcamarche.net/faq/893-parametres-de-serveurs-pop-imap-et-smtp-des-principaux-fai
-
-
He utilizado el comando mailto en un segundo batch para probarlo por separado, funciona, pero me abre Outlook y luego espera que escriba el correo para enviarlo. Mi objetivo es automatizar el envío de correos y, por lo tanto, no pasar por ningún software que requiera intervención humana...
He pensado en un netsend, pero mi tutor está muy interesado en que sea un correo y no un mensaje...
Ayúdame, por favor...
Si no se puede hacer con batch, ¿podrías decirme qué lenguaje sería el más adecuado y darme algunas pistas para lograr mi objetivo (aparte del lenguaje DOS, no conozco nada)
Gracias por tus respuestas. -
Hola,
puedes usar blat en la línea de comandos. Solo tienes que instalarlo en el equipo...
http://www.blat.net/
--
¡A+ Blux"Los tontos se atreven a todo. Es incluso por eso que los reconocemos"
-