Visual Basic - Crear Mail con firma

Life is soft - evento anual de software empresarial
   
Vista:

Crear Mail con firma

Publicado por Kaly (14 intervenciones) el 01/12/2008 18:30:31
hola a todos,
tengo un programa que crea un mail en Outlook, el codigo es algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'crear aplicacion Outlook
Dim oApp As Outlook.Application
Set oApp = New Outlook.Application
' Crear un nuevo elemento de correo.
Dim oMsg As Outlook.MailItem
Set oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem)
oMsg.Subject = "Enviar datos"
oMsg.Body = "Texto de ejemplo" & vbCr & vbCr
oMsg.To = "destinatario@miejemplo.com"
'mostrar mail
oMsg.Display
'descargar variables
oApp = Nothing
oMsg = Nothing
'--------------------------------------------------------

Esto funciona perfectamento salvo por una cosita, No coje la firma que uso para los correos. Por mas que busco no encuentro la forma de agradarle la firma. ¿Alguien sabe como hacerlo?

muchas gracias
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

RE:Crear Mail con firma

Publicado por Christian (666 intervenciones) el 01/12/2008 21:43:07
HOLA KALY COMO ESTAS , LO QUE VOS NECESITAS INSERTAR ES LO QUE SE LLAMA SIGNATURE(FIRMA) FIJATE DE ESTA MANERA SINO GOOGLEA UN POCO .SALUDOS

http://www.google.com.ar/search?sourceid=navclient&hl=es&ie=UTF-8&rlz=1T4GGIH_esAR266AR266&q=how+to+read+signature+outlook+%2b+vba

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Sub Mail_Outlook_With_Signature_Plain()
 
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    Dim SigString As String
    Dim Signature As String
 
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)
 
    strbody = "Hi there" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2" & vbNewLine & _
              "This is line 3" & vbNewLine & _
              "This is line 4"
 
    SigString = "C:Documents and Settings" & Environ("username") & _
                "Application DataMicrosoftSignaturesMysig.txt"
 
    If Dir(SigString) <> "" Then
        Signature = GetBoiler(SigString)
    Else
        Signature = ""
    End If
 
    On Error Resume Next
    With OutMail
        .To = "ron@debruin.nl"
        .CC = ""
        .BCC = ""
        .Subject = "This is the Subject line"
        .Body = strbody & vbNewLine & vbNewLine & Signature
        'You can add files also like this
        '.Attachments.Add ("C:	est.txt")
        .Send   'or use .Display
    End With
    On Error GoTo 0
 
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
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

RE:Crear Mail con firma

Publicado por Kaly9 (14 intervenciones) el 02/12/2008 09:41:24
Muchisimas gracias !!!

solo añadir por si le sirve a otra persona, que para que el ejemplo que me pones funcione correctamente, hay que añadir esta funcion. Viene en la pagina Web que me has puesto.

1
2
3
4
5
6
7
8
9
Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
    Dim fso As Object
    Dim ts As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
    GetBoiler = ts.readall
    ts.Close
End Function

Muchas gracias de nuevo.
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

RE:Crear Mail con firma

Publicado por Arturo Blazquez (1 intervención) el 15/04/2009 15:52:36
Hola,

estos codigos me son muy practicos pero si hubiese alguien que tuviese la forma de incluir firma en formato html me vendria muy bien porque esta solo incluye texto plano.

Gracias de antemano.
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

RE:Crear Mail con firma

Publicado por Christopher (1 intervención) el 29/12/2011 16:31:22
para html modificar

.Body = strbody & vbNewLine & vbNewLine & Signature

por

.HTMLBody = strbody & vbNewLine & vbNewLine & Signature
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

RE:Crear Mail con firma

Publicado por Jose (4 intervenciones) el 27/03/2013 09:13:31
Muy buenas,
ya se que este hilo es de hace tiempo, pero he seguido vuestras instrucciones y ya tengo firma en el mensaje!!! muchas gracias!!!
ahora se meplantea otro problema. Cuando añdo la firma así, aparece perfectamente, pero... no aparecen las imágenes que tengo añadidas en la firma. ¿como habría que hacer para que aparecieran?
Muchas gracias de antemano.
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

RE:Crear Mail con firma

Publicado por miguel (1 intervención) el 10/05/2013 15:22:26
Para las imágenes yo lo que he hecho es ponerlas en mi web y cambiar las referencias del HTML locales por http://www.miweb.com/carpetaimagenes
Donde miweb es el nombre de la pagina web y carpetaimagenes es la carpeta donde almaceno las imágenes. Como lo que se adjunta al correo lleva el enlace cuando abres el correo lo recibes con imagenes
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

RE:Crear Mail con firma

Publicado por Leo (1 intervención) el 24/09/2013 16:54:33
buenas
hace un tiempo me he encontrado con el mismo problema y lo pude solucionar con el siguiente código. La idea es primero hacer el display y despues recuperar el texto del cuerpo (obtiene la firma) y a ese texto agregarle el que nosotros querramos. En mi caso, el texto esta en formato HTML, por lo que si el texto que queremos agregar lo hacemos en un HTML lo podremos ver con formato. Espero que les ayude!!

cuerpo= codigo HTML de la pagina donde escribí el texto

objMail.Subject = Asunto
IobjMail.To = Email
objMail.Display
Firma = objMail.HTMLBody
objMail.HTMLBody = Cuerpo + Firma
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

RE:Crear Mail con firma

Publicado por Iván F (1 intervención) el 08/01/2015 23:32:33
Muchas gracias Leo, ya hice la unión de la firma y luego con el texto y ahora si logro que se muestre el texto y la firma y se elimino el error que decía "No se puede mostrar la imagen en este momento".
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

RE:Crear Mail con firma

Publicado por JAZMIN jazmin.gguzman@gmail.com (1 intervención) el 21/10/2015 16:19:38
Hola, crees que me pudieras ayudar con mi codigo para anexar la firma con imagen pls??
Ojala me pudieras ayudar

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
27
28
29
30
31
32
33
34
35
36
Sub OutlookMailExcelAdjunto()
Dim OutApp As Object
Dim OutMail As Object
 
'Ultima fila usada
ultFil = Range("A:A").Find("*", , , , , xlPrevious).Row
 
'Outlook
Set OutApp = CreateObject("Outlook.Application")
 
'Se crea la conexión con el gestor de correo
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.logon
'Se crea metodo de envio de correo
Set OutMail = OutApp.CreateItem(0)
 
 
ActiveWorkbook.Save
'Se definen el destinatario, la copia y la copia oculta, el asunto
'el cuerpo del correo y los archivos adjuntos si se requiere.Especificando
'los campos usados.
On Error Resume Next
With OutMail
.To = Range("B4").Value
.CC = Range("B5").Value
.BCC = Range("B6").Value
.Subject = Range("B7").Value
.Body = Range("B8") & Firma.Value
.Attachments.Add Range("B9").Value
.Send
End With
On Error GoTo 0
 
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
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

RE:Crear Mail con firma

Publicado por javier (1 intervención) el 21/05/2014 23:30:43
Estimado y como se haria en C# ??
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

RE:Crear Mail con firma

Publicado por Gerardo Velazquez (1 intervención) el 26/07/2014 21:58:12
yo tengo el siguiente codigo pero solo me funciona cuando tengo el outlook cerrado ,necesito abrir la ventana de nuevo correo sin importar que este abierto espero me puedan ayudar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim CorreoAutomatico = New Outlook.Application
Dim Mail As Outlook.MailItem = CorreoAutomatico.CreateItem(Outlook.OlItemType.olMailItem)
'Asignamos las propiedades a nuestra Instancial del objeto 
'MailItem 
Mail.To = Email
Mail.Subject = "Confirmation Of Reservation " + ReservationID
Mail.Body = "Escriba aquí el cuerpo del mensaje"
'enviar un archivo adjunto… 
Dim RutaArchivoAdjunto As String = Ruta
Dim NombreArchivoAdjunto As String = ReservationID
Dim LonguitudArchivo As String = Mail.Body.Length
Dim oAttachs As Outlook.Attachments = Mail.Attachments
Dim oAttach As Outlook.Attachment
oAttach = oAttachs.Add(RutaArchivoAdjunto, , LonguitudArchivo + 1, NombreArchivoAdjunto)
 
'Enviamos nuestro Mail 
Mail.Display()
Close()
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 Andres Leonardo

RE:Crear Mail con firma

Publicado por Andres Leonardo (698 intervenciones) el 29/05/2015 21:23:57
Utilizas

en vez de Mail.Display() Mail.Send()

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

RE:Crear Mail con firma

Publicado por oscar azcona (1 intervención) el 31/07/2015 18:07:57
Tengo una macro para mandar un archivo por correo, para quiero saber si en la macro se puede agregar el Asunto en el correo, inclur la firma que tengo en outlook, y que se envie el correo

Ejem de la macro:
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
27
28
29
Sub eMail_Hoja_Activa()
'-------------------
' by Cacho Rodríguez
'-------------------
Dim attBook$
attBook = Environ("temp") & "\Libro2.xlsx"
 
' Guardo la hoja activa como un libro independiente
ActiveSheet.Copy
If Dir(attBook) <> "" Then Kill attBook
With ActiveWorkbook
  .SaveAs Filename:=attBook, FileFormat:=51
  .Close False
End With
 
' Creo el objeto Outlook
With CreateObject("Outlook.Application")
' Creo el nuevo mail
  With .CreateItem(0)
' Incorporo el archivo que se adjunta
.To = ""
.CC = ""
.Subject
.Body =
.Attachments.Add attBook
    .Display
  End With
End With
End Sub
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

RE:Crear Mail con firma

Publicado por antonio (27 intervenciones) el 04/11/2015 11:31:41
Hola Christian,

He hecho lo que me dices pero luego no me añade la firma.

Tengo una duda sobre el código: Tu obtienes "Signature", pero luego en que parte del With OutMail lo usas? No hay ninguna llamada a ello no?
Yo al no verlo he asumido que seria como .Attachments.Add(Signature) pero no funciona. Asique probe con la cadena .Attachments.Add(SigString) , pero eso me adjunta en un bloc de notas la firma, no la "plasma" en el cuerpo del correo.

Finalmente la puse como .Body = .Body +Signature.. y Si la plasma en el cuerpo del correo! PERO no me plasma la imagen que contiene la firma, si no solo los caracteres.

¿Sabes que estoy haciendo mal?

Gracias por adelantado!
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

RE:Crear Mail con firma

Publicado por Fernando Enrique (1 intervención) el 11/02/2016 22:13:33
Debes reemplazar :

1
.Body = strbody & vbNewLine & vbNewLine & Signature


Por:

1
2
3
4
5
.HTMLBody = "<html>" & _
	"<body>" & _
	"<img src='cid:'" & .Attachments.Item(1).Filename & _
	"</body>" & _
	"</html>"



Después de:

1
With OutMail


Agregar:

1
'Firma = objMail.HTMLBody
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

RE:Crear Mail con firma

Publicado por sebastian (4 intervenciones) el 08/07/2016 00:02:16
Estimados,

Como puedo elegir la cuenta del remitente ya que tengo tres cuentas configuradas en outlook y cada vez que envio un correo utiliza la cuenta predeterminada.

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
Imágen de perfil de Andres Leonardo

RE:Crear Mail con firma

Publicado por Andres Leonardo (698 intervenciones) el 08/07/2016 00:18:15
Despues del with
.sendusingaccount =outapp.session.accounts.item(1) 'dnd 1 es el indice de la cuenta 0 es dafault

Estoy enviando desde el mail
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

RE:Crear Mail con firma

Publicado por Luis Carlos Higuera (1 intervención) el 07/09/2016 21:44:48
Buenas tardes
Tengo esta macro pero no puedo hacer que la firma de mi correo se incorpore al cuerpo del mensaje, mi firma es una imagen con mis datos

Espero y me puedan ayudar, Gracias!

Sub correo()

Application.ScreenUpdating = False

Dim outlookOBJ As Object
Dim mitem As Object
Dim strbody As String

nume_regi = Range("E21").End(xlDown).Row - 21

For i = 1 To nume_regi

Set outlookOBJ = CreateObject("Outlook.Application")
Set mitem = outlookOBJ.CreateItem(olMailItem)

asunto = "POSGRADO TESIS FCA: " & Cells(5, 5).Value
ruta_archivo = Cells(7, 5).Value
cuerpo = Cells(9, 2).Value
persona = Cells(21 + i, 5).Value
Enviara = Cells(21 + i, 6).Value
contra = Cells(21 + i, 7).Value
empresa = Cells(21 + i, 8).Value
Otro = Cells(21 + i, 9).Value
escrito = Range("L19")
dia = Range("L2")


If ruta_archivo <> "" Then
With mitem
.To = Enviara
.Subject = asunto
.Body = "Estimado(a): " & persona & vbCrLf & vbCrLf & cuerpo
.Attachments.Add (ruta_archivo)
.send
End With
Else: ruta_archivo = ""
With mitem
.To = Enviara
.Subject = asunto
.Body = "Estimado(a): " & persona & vbCrLf & vbCrLf & cuerpo
.send
End With

End If

Next i
Range("e7").Select
Selection.ClearContents
Range("E5").Select

Application.ScreenUpdating = True
Set outlookOBJ = Nothing
Set mitem = Nothing

MsgBox ("Finalizado se enviaron " & nume_regi & " Correos con exito"), vbOKOnly, "Correos enviados"


End Sub
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