Mail Merge sencillo con Mail en Mac OS X

MailMergeIcon.jpgMail Merge es un término anglosajón que define una acción específica: a través de una plantilla en la que hay una serie de variables, se consulta una base de datos que acumula registros para introducir en esos huecos (placeholders) la información pertinente.

De esta forma, llegan a los usuarios cartas personalizadas, facturas con tus datos y tu nombre o correos electrónicos con tu nombre y una oferta comercial (entre otros muchos usos). pero el proceso es ese, así de sencillo: una plantilla, unas variables y un archivo de datos.

Para Mail de Apple no es que haya excesivas opciones para hacer Mail Merge, es decir, para enviar un correo personalizado a muchos usuarios cada uno con su nombre, por ejemplo. Una posibilidad es crear una acción de Automator, pero dependeríamos en muchos casos de la Agenda de Mac OS X y no vas a dar de alta allí a un montón de usuarios a los que vas a enviar un correo. Así que vamos a buscar otra forma

Vamos a usar un AppleScript para hacer un Mail Merge sencillo con Mail de Mac OS X y para ello vamos a necesitar:

  • Una lista de personas a las que vamos a enviar este correo formateada especialmente: cada entrada debe llevar en este formato Nombre Apellidos <correo@electronico.es>
  • Cada uno de estos registros deben estar separados por un retorno de carro (enter)
  • El archivo debe guardarse como texto plano (.txt no .rtf)
  • Si tienes direcciones de correo almacenadas en Excel, o en otros programas, siempre puedes exportarlas como un archivo .csv (valores separados por comas). Luego, abres el archivo, y sustituyes con buscar y cambiar la coma por un retorno de carro, aunque muchos programas son capaces de exportar con este delimitador entre registros a gusto del usuaurio, así que es posible exportar estos archivos con los correspondientes retornos de carro.

    Una vez tengas la lista de direcciones, escribe el correo electrónico, pero no escribas la cabecera: esa que dice “Estimado/a <nombre>” porque eso lo añadiremos después desde el Applescript.

    Escribe unos cuantos párrafos para el cuerpo del correo en un documento de texto plano (sin estilos).

    Ahora vamos a por el AppleScript:

    tell application “Mail” to set allAccounts to name of every account

    choose from list allAccounts with title “Elige la cuenta de correo que vas a usar”

    set theAccount to result as string

    tell application “Mail” to set allSignatures to name of every signature

    choose from list allSignatures with title “Elige una firma para el correo”

    set theSignatureName to result as string

    set subjectDialog to display dialog ¬

    “Escribe el asunto del correo electrónico” default answer “Sin asunto”

    set theSubject to text returned of subjectDialog

    set sendOrPreview to the button returned of ¬

    (display dialog ¬

    “¿Enviar los correos automáticamente o revisarlos primero y enviar manualmente?” with title ¬

    “¿Enviar o revisar?” with icon caution ¬

    buttons {“Revisar”, “Enviar”} ¬

    default button 1)

    set theText to (choose file with prompt “Selecciona el archivo de texto que contiene el cuerpo del correo”)

    set messageBody to read theText

    tell application “Finder”

    set addresses to paragraphs of ¬

    (read (choose file with prompt “Elige el archivo que contiene los correos electrónicos, uno por línea”))

    end tell

    tell application “Mail”

    activate

    set activeAccount to account theAccount

    repeat with i from 1 to (the length of addresses)

    set target to item i of addresses

    set targetWords to every text item of target

    if (the length of targetWords) > 1 then

    set forename to first word of target

    set theContent to “Estimado/a ” & forename & return & return & messageBody

    else

    set theContent to messageBody

    end if

    set newMessage to make new outgoing message ¬

    with properties {account:activeAccount, subject:theSubject, content:theContent}

    set message signature of newMessage to signature theSignatureName of application “Mail”

    set TheSender to activeAccount

    tell newMessage

    set TheSender to {(full name of activeAccount & ” “), make new to recipient at end of to recipients ¬

    with properties {address:(a reference to target)}}

    set visible to true

    end tell

    if sendOrPreview is equal to “Enviar” then

    send newMessage

    end if

    end repeat

    end tell

    Este AppleScript realiza paso a paso la selección de la cuenta, la firma a elegir entre las disponibles en Mail, el asunto y la opción de enviar directamente o revisar los correos para posteriormente, usando los dos correspondientes archivos de texto, componer los correos y enviarlos manualmente o enviarlos directamente a sus destinatarios.

    Copia el texto y pégalo en el editor de Scripts (cuidado con las comillas con estilo). Guarda el Applescript como una aplicación para ejecutarla desde el escritorio, o como un flujo específico para Mail poniendo el Applescript en Librería > Sripts > Mail Scripts

    Es una opción muy sencilla para hacer Mail Merge, pero es gratuita y para una necesidad puntual … suficiente.

    El script está basado en el trabajo de Gianugo Rabellino en Boldly Open, aunque ha sido modificado y traducido al español por Carlos Burges para adaptarlo a Snow Leopard.

    0 0 votos
    Article Rating
    Subscribe
    Notify of
    2 Comments
    Oldest
    Newest Most Voted
    Opiniones Inline
    Ver todos los comentarios
    Anónimo
    Anónimo
    11 years ago

    BRAVO, BRAVO, BRAVO!!! Llevaba tiempos buscando una solución sencilla como esta y me la habéis puesto a huevoooooooooooooooooo. Qué fácil y funciona perfectamente!!!!

    Anónimo
    Anónimo
    11 years ago

    Sólo comentar que también se pueden hacer plantillas en Pages para enviar de la misma forma. Es muy sencillo también pero se usa la información de la agenda, lo que para mi es una ventaja no una desventaja.

    2
    0
    Me encantaría saber tu opinión, por favor, deja un comentariox
    ()
    x