es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agente LotusScript para enviar correos a múltiples destinatarios desde un archivo CSV

Necesito un botón de acción de agente LotusScript para enviar un correo electrónico a múltiples destinatarios cuyas direcciones serán leídas desde un archivo CSV o Excel. Tengo que enviar el mismo correo a varios cientos de destinatarios y es mucho más fácil enviarlo desde un archivo de Excel que escribir o copiar cada uno individualmente. He encontrado el método “Send” en el sitio de HCL y una implementación con un ejemplo de Array Estático:

“`sub Click(Fuente como botón)
Dim s como NotesSession
Dim db como NotesDatabase
Dim doc como NotesDocument
Dim rtitem as NotesRichTextItem
Set s = New NotesSession
Set db = s.CurrentDatabase
Set doc = New NotesDocument(db)

'———————————————————————-
' Construir lista estática de direcciones de correo electrónico
'———————————————————————-
Dim direcciones (1 to 3) as String
direcciones(1) = "EMAIL"
direcciones(2) = "EMAIL"
direcciones(3) = "EMAIL"

'———————————————————————-
' Crear y enviar mensaje de correo electrónico
'———————————————————————-
doc.Form = "Memo"
doc.SendTo = direcciones
doc.Subject = "Este es el asunto del mensaje"
Set rtitem = New NotesRichTextItem(doc, "Cuerpo")
Call rtitem.AddNewLine(1)
Call rtitem.AppendText("El cuerpo del mensaje de correo electrónico.")
doc.Send (True)
Msgbox "Muestra de correo electrónico enviado"
End sub“`

Este botón de acción debería enviar un correo electrónico a 3 destinatarios o a tantos como introduzca manualmente en el código, ¿pero hay alguna forma de enviar el correo electrónico a los destinatarios de un archivo CSV o Excel?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, existe una forma de enviar correo electrónico a destinatarios desde un archivo csv o excel usando LotusScript. En lugar de construir una lista estática de direcciones de correo electrónico, puedes leer las direcciones de correo electrónico desde un archivo csv o excel y recorrerlas para agregarlas al campo SendTo. Aquí tienes un ejemplo de fragmento de código:

    Sub Click(Source As Button)
     Dim s As New NotesSession
     Dim db As NotesDatabase
     Dim doc As NotesDocument
     Dim rtitem As NotesRichTextItem
     Dim fileNum As Integer
     Dim filePath As String
     Dim fileLine As String
     Dim addressesList() As String
     Set db = s.CurrentDatabase
     Set doc = New NotesDocument(db)
    
     'Cambia la ruta del archivo a la ubicación de tu archivo csv o excel
     filePath = "C:\emails.csv"
    
     'Abre el archivo
     fileNum = Freefile()
     Open filePath For Input As fileNum
    
     'Lee el archivo y guarda cada dirección de correo electrónico en un arreglo
     While Not Eof(fileNum)
      Line Input #fileNum, fileLine
      addressesList = Split(fileLine,",")
     Wend
    
     'Cierra el archivo
     Close fileNum
    
     'Crea y envía el correo electrónico
     doc.Form = "Memo"
     doc.SendTo = addressesList
     doc.Subject = "Este es el asunto del mensaje"
     Set rtitem = New NotesRichTextItem(doc, "Body")
     Call rtitem.AddNewLine(1)
     Call rtitem.AppendText("El cuerpo del mensaje de correo electrónico.")
     doc.Send (True)
     Msgbox "Correo electrónico de muestra enviado"
    End Sub
    

    Este código lee el archivo csv especificado y guarda cada dirección de correo electrónico en un arreglo llamado addressesList. Luego, establece el campo SendTo del documento de correo electrónico con el arreglo de direcciones de correo electrónico, lo que te permite enviar el correo electrónico a múltiples destinatarios a la vez.

Comments are closed.