Hola,
Los programas que para trabajar con listas de correo he probado solucionan lo que te preocupa de una forma muy similar: utilizan lo que podríamos llamar "cadenas-clave" que sustituyen luego cuando es menester.
Algunos programas de estos incluso van más allá y permiten que el usuario añada sus propias "cadenas-clave" en los cuerpos de los correos, por ejemplo, con el fin último de personalizar estos.
El quid está en formar un cuerpo de correo más o menos similar a este de ejemplo:
Código:
Estimado %USUARIO%,
Le escribimos para felicitarle por su cumpleaños.
Le deseamos que cumpla muchos más y que disfrute
de nuestros servicios igualmente por mucho tiempo.
Atentamente,
CaracoleSoft
* Está dado de alta en nuestro boletín de novedades
con la dirección de correo: %DIRECCIONUSUARIO%.
Si quiere, puede cambiar esta dirección por otra o
darse de baja de este servicio siguiendo este enlace.
Eso podría ser la plantilla del cuerpo de un correo: ahora, en tiempo de ejecución, según se va procesando el envío de correos (que puedes hacer dentro de un "bucle for", por poner un caso) sería cuestión de sustituir mediante alguna función (*) para tal efecto las "cadenas-clave" por las cadenas que correspodan.
O sea, en este caso sería cuestión de sustituir las "cadenas-clave"
%USUARIO% y
%DIRECCIONUSUARIO% por el nombre de usuario y por su dirección de correo.
(*) Ya sabes que en la unidad "StrUtils" de Delphi encontrarás funciones con las que podrás llevar a cabo esta tarea.