¿Cuál es la mejor manera de usar la plantilla de correo electrónico en Zend / PHP?

Estoy trabajando en un sitio web donde los usuarios crean sus cuentas. Necesito enviar correos electrónicos a los usuarios en muchos océanos. Por ejemplo, cuando me registre, olvidé mi contraseña, resumen del pedido, etc. Quiero usar plantillas de correos electrónicos para esto. Necesito tus sugerencias para esto. Quiero usar una forma que si cambio cualquier plantilla de correo electrónico o inicio sesión en menos tiempo y cambios.

He pensado en la siguiente forma:

Tengo una tabla para plantillas de correo electrónico como esta:

id
emailSubject
emailBody
emailType

Por ejemplo, cuando el usuario olvidó la contraseña:

carné de identidad:

1

asunto del email:

ABC: Link for Password Change

cuerpo del correo electronico:

<table border=0>
<tr><td>
   <b> Dear [[username]] <b/>
</td></tr>

<tr><td>
   This email is sent to you in response of your password recovery request. If you want to change your password, please click the following link:<br />
[[link1]]
<br/>
If you don't want to change your password then click the following link:<br/>
[[link2]]
</tr></td>

<tr><td>
   <b>ABC Team</b>
</td></tr>

</table>

emailType:

ForgotPassword

Preparar datos de correo electrónico:

$emailFields["to"] = "[email protected]";
$emailFields["username"] = "XYZ";
$emailFields["link1"] = "http://abc.com/changepassword?code='123'";
$emailFields["link2"] = "http://abc.com/ignorechangepasswordreq?code='123'";
$emailFields["emailTemplate"] = "ForgotPassword";

Ahora pase todos los campos a esta función para enviar correos electrónicos:

sendEmail( $emailFields ){
 // Get email template from database using emailTemplate name.
 // Replace all required fields(username, link1,link2) in body.
 // set to,subject,body
 // send email using zend or php
}

Planeé usar el método anterior. ¿Puede sugerir una mejor manera o algún cambio en la lógica anterior?

Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta