http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,fb9e9267-3642-4176-94ea-9239691b61fa.aspx
Autor: Craig Boyd
Traducido por: Ana María Bisbé York
Si puede contar conque sus usuarios utilizan Outlook como su cliente de correo (que no emplean Eudora u otro), entonces el siguiente código es muy cómodo. Enviar correo desde Automatización Outlook nos brinda el acceso a varias posibilidades que vienen con el objeto MailItem. He tocado algunas de ellas; pero para más información, se puede referir a la información del objeto MailItem en MSDN (http://msdn.microsoft.com/library/en-us/vbaol11/html/olobjMailItem_HV05247822.asp)
******************************* *!* Ejemplo de utilización de SendViaOutlook ******************************* #DEFINE olImportanceLow 0 #DEFINE olImportanceNormal 1 #DEFINE olImportanceHigh 2 DIMENSION aryAttach(2) aryAttach(1) = "C:\attachment1.txt" && cambie a un archivo real que existe en su PC aryAttach(2) = "C:\attachment2.zip" && cambie a un archivo real que existe en su PC LOCAL lcTo, lcSubject, lcBody, lcCC, lcBCC, llHTMLFormat, llOpenEmail, lcErrReturn lcTo = "alguien@algundominio.com" lcSubject = "Hey, ¿Ha intentado enviar un email con VFP?" *!* Enviando el cuerpo en formato HTML llHTMLFormat = .T. lcBody = "<a href='http://www.sweetpotatosoftware.com/SPSBlog/default.aspx'>" + ; "Hey, ¿Ha intentado enviar un email con VFP?" + ; "</a>" lcCC = "otro@otrodominio.com" lcBCC = "mijefe@dominiodeljefe.com" *!* para enviar correo automáticamente haga llOpenEmail igual a .F. llOpenEmail = .T. && Si el correo se abrió o no, en el cliente de correo Outlook SendViaOutlook(@lcErrReturn, lcTo, lcSubject, lcBody, @aryAttach, lcCC, lcBCC, llHTMLFormat, olImportanceHigh, llOpenEmail) IF EMPTY(lcErrReturn) MESSAGEBOX("'" + lcSubject + "'" + IIF(llOpenEmail, " abierto ", " enviado ") + "satisfactoriamente.", ; 64, "Envía email via Outlook") ELSE MESSAGEBOX("'" + lcSubject + "' falló al enviar. Causa:" + CHR(13) + lcErrReturn, 64, "Envía email via Outlook") ENDIF ******************************************* PROCEDURE SendViaOutlook(tcReturn, tcTo, tcSubject, tcBody, taFiles, tcCC, tcBCC, tlHTMLFormat, tnImportance, tlOpenEmail) ******************************************* LOCAL loOutlook, loItem, lnCountAttachments TRY loOutlook = CREATEOBJECT("outlook.application") loItem = loOutlook.CreateItem(0) WITH loItem .Subject = tcSubject .TO = tcTo IF tlHTMLFormat .HTMLBody = tcBody ELSE .Body = tcBody ENDIF IF TYPE("tcCC") = "C" .CC = tcCC ENDIF IF TYPE("tcBCC") = "C" .BCC = tcBCC ENDIF IF TYPE("tnImportance") != "N" tnImportance = 1 && importancia normal ENDIF .Importance = tnImportance IF TYPE("tafiles",1) = "A" FOR lnCountAttachments = 1 TO ALEN(taFiles) .Attachments.ADD(taFiles(lnCountAttachments)) ENDFOR ENDIF IF tlOpenEmail .DISPLAY() ELSE .SEND() ENDIF ENDWITH CATCH TO loError tcReturn = [Error: ] + STR(loError.ERRORNO) + CHR(13) + ; [LineNo: ] + STR(loError.LINENO) + CHR(13) + ; [Message: ] + loError.MESSAGE + CHR(13) + ; [Procedure: ] + loError.PROCEDURE + CHR(13) + ; [Details: ] + loError.DETAILS + CHR(13) + ; [StackLevel: ] + STR(loError.STACKLEVEL) + CHR(13) + ; [LineContents: ] + loError.LINECONTENTS FINALLY RELEASE oOutlook, oItem STORE .NULL. TO oOutlook, oItem ENDTRY ENDPROC
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.