Ms-Dos - Enviar email con adjunto arrastrado a un icono

   
Vista:

Enviar email con adjunto arrastrado a un icono

Publicado por Salvador (18 intervenciones) el 11/02/2018 14:17:37
Encontré en Internet este código en .VBS para adjuntar un archivo a Outlook y enviarlo, siendo el texto de todos los campos ("para", "asunto",...) fijo.

1
2
3
4
5
6
7
8
9
10
11
12
13
para = "mail1@empresa.com; mail2@empresa.com; mail3@empresa.com"
asunto = "PRUEBA"
mensaje = "Un saludo"
 
Adjunto ="C:\Users\usuario\Desktop\Foto1.jpg"
 
Set outlook = CreateObject("Outlook.Application")
Set correo = outlook.CreateItem(olMailItem)
correo.To = para
correo.Subject = asunto
correo.Body = mensaje
correo.Attachments.Add(Adjunto)
correo.display

Pretendo sólamente saber cómo se podría "flexibilizar" la ruta del lo que se adjunta, de manera que se adjunte al email el archivo arrastrado (ej. Foto1.jpg) al icono .VBS

Me imagino que solo se podrá arrastrar a un .BAT, y éste habrá que relacionarlo de alguna manera para que llame al VBS y se abra el Outlook. Pero no lo sé.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana

Enviar email con adjunto arrastrado a un icono

Publicado por Antoni Masana (485 intervenciones) el 12/02/2018 07:50:38
Una Solución

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
set Mail=C:\tmp\TMP_Mail.vbs
 
IF "%1" == "" goto :EOF
 
echo.para = "mail1@empresa.com; mail2@empresa.com; mail3@empresa.com"  >%Mail%
echo.asunto = "PRUEBA"                                                >>%Mail%
echo.mensaje = "Un saludo"                                            >>%Mail%
echo.                                                                 >>%Mail%
echo.Adjunto ="%1"                                                    >>%Mail%
echo.                                                                 >>%Mail%
echo.Set outlook = CreateObject("Outlook.Application")                >>%Mail%
echo.Set correo = outlook.CreateItem(olMailItem)                      >>%Mail%
echo.                                                                 >>%Mail%
echo.correo.To = para                                                 >>%Mail%
echo.correo.Subject = asunto                                          >>%Mail%
echo.correo.Body = mensaje                                            >>%Mail%
echo.correo.Attachments.Add(Adjunto)                                  >>%Mail%
echo.correo.display                                                   >>%Mail%
 
    %Mail%
del %Mail%

Supongo que a un VBS se le puede pasar parámetros, que seria lo suyo, pero de momento con esto sales de paso.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enviar email con adjunto arrastrado a un icono

Publicado por Salvador (18 intervenciones) el 12/02/2018 14:06:12
Perfecto. Funciona.

Mejor así en bat que en vbs.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email con adjunto arrastrado a un icono

Publicado por Salvador (18 intervenciones) el 12/02/2018 22:10:57
Después de hacer algunas pruebas con archivos con y sin espacios en el nombre, llego a la conclusión de que:

1) para funcione con archivos sin espacios, la linea 10 tiene que llevar comillas ("%1"), y
2) para los que lleven espacios, hay que quitarle las comillas (%1).

¿Habría algun remedio que funcione siempre?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Enviar email con adjunto arrastrado a un icono

Publicado por Antoni Masana (485 intervenciones) el 12/02/2018 22:39:57
Este es un sistema operativo muy malo y da un montón de problemas.

Añado dos lineas y modifico una.
- Asigno el nombre de fichero a una variable ( Linea 6 ),
- Le quito la comillas si las tiene ( Linea 7 ),
- Asigno la variable al Adjunto ( Linea 13 )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
set Mail=C:\tmp\TMP_Mail.vbs
 
IF "%1" == "" goto :EOF
 
set File=%1
set File=%File:"=%

echo.para = "mail1@empresa.com; mail2@empresa.com; mail3@empresa.com"  >%Mail%
echo.asunto = "PRUEBA"                                                >>%Mail%
echo.mensaje = "Un saludo"                                            >>%Mail%
echo.                                                                 >>%Mail%
echo.Adjunto ="%File%"                                                >>%Mail%
echo.                                                                 >>%Mail%
echo.Set outlook = CreateObject("Outlook.Application")                >>%Mail%
echo.Set correo = outlook.CreateItem(olMailItem)                      >>%Mail%
echo.                                                                 >>%Mail%
echo.correo.To = para                                                 >>%Mail%
echo.correo.Subject = asunto                                          >>%Mail%
echo.correo.Body = mensaje                                            >>%Mail%
echo.correo.Attachments.Add(Adjunto)                                  >>%Mail%
echo.correo.display                                                   >>%Mail%
 
    %Mail%
del %Mail%

Problema resuelto.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar email con adjunto arrastrado a un icono

Publicado por Salvador González (18 intervenciones) el 13/02/2018 23:42:22
Gracias Antoni.

Solo añadir que para que me funcionara he tenido que eliminar las comillas de %1 de la linea 4.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@echo off
set Mail=C:\tmp\TMP_Mail.vbs
 
IF %1 == "" goto :EOF
 
set File=%1
 
set File=%File:"=%

echo.para = "mail1@empresa.com; mail2@empresa.com; mail3@empresa.com"  >%Mail%
echo.asunto = "PRUEBA"                                                >>%Mail%
echo.mensaje = "Un saludo"                                            >>%Mail%
echo.                                                                 >>%Mail%
echo.Adjunto ="%File%"                                                >>%Mail%
echo.                                                                 >>%Mail%
echo.Set outlook = CreateObject("Outlook.Application")                >>%Mail%
echo.Set correo = outlook.CreateItem(olMailItem)                      >>%Mail%
echo.                                                                 >>%Mail%
echo.correo.To = para                                                 >>%Mail%
echo.correo.Subject = asunto                                          >>%Mail%
echo.correo.Body = mensaje                                            >>%Mail%
echo.correo.Attachments.Add(Adjunto)                                  >>%Mail%
echo.correo.display                                                   >>%Mail%

    %Mail%
del %Mail%

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Enviar email con adjunto arrastrado a un icono

Publicado por Antoni Masana (485 intervenciones) el 14/02/2018 06:34:29
Debería funcionar igual. Al menos a mi me funciono bien.
Las comillas de la línea 4 no provocan ningún error, que yo sepa cuando pasas un fichero. solo provoca error si ejecutas el BAT sin parámetros. Se pueden cambiar por cualquier cosa, paréntesis, un guión, una arroga, etc.

1
2
3
IF (%1) == () goto :EOF
IF -%1- == -- goto :EOF
IF @%File% == @ goto :EOF

Tambien puedes hacer esto:

1
2
3
4
5
6
7
8
@echo off
set Mail=C:\tmp\TMP_Mail.vbs
 
set File=%1
set File=%File:"=%
 
IF (%File%) == () goto :EOF

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enviar email con adjunto arrastrado a un icono

Publicado por Salvador (18 intervenciones) el 15/02/2018 13:53:25
Está bien saberlo.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad