La clase Email
La clase Email está pensada para enviar emails de forma sencilla.
Índice
- Creando y enviando emails.
- La operación de contacto.
- Modificando el mensaje.
EmailException.- Massive mailing.
Enviar un email
Para enviar un email, crearemos una instancia de Email y
lo enviaremos haciendo uso del método send().
Ejemplo
Los parámetros que acepta el constructor son:
Parámetros
- string
$to: email del destinatario. - string
$subject: asunto. - string
$message: mensaje. - string|null
$from: email del remitente, suele ser el email por defecto para las respuestas desde la aplicación. Si no se indica será el valor de la constanteDEFAULT_EMAILdefinida en el config.php. Si ésta tampoco existe, se usará el valor definido en el fichero php.ini. - string|null
$name: nombre del remitente, suele ser el nombre por defecto para el email por defecto. Si no se indica será el valor de la constanteDEFAULT_EMAIL_NAMEdefinida en el config.php. Si ésta tampoco existe, se usará el valor definido en el fichero php.ini. - string|null
$realFrom: email real del remitente del mensaje, por ejemplo para la operación de contacto, donde el remitente es la persona que rellena el formulario. - string|null
$realFrom: nombre real del remitente del mensaje, por ejemplo para la operación de contacto.
A continuación se muestra un ejemplo si usamos el tercer y cuarto parámetro:
Ejemplo
La operación de contacto
Cuando se realiza la operación de contacto, el email de origen y el nombre de la persona real no coinciden con el remitente. Para estas situaciones podemos usar los parámetros sexto y séptimo.
Ejemplo
Modificando el mensaje
Para modificar el texto del mensaje, podemos editar el método
prepareMessage(), o bien implementar una nueva clase
que herede de ésta y redefinirlo.
Ejemplo
La opción de heredar y redefinir el método
prepareMessage() es muy interesante, especialmente
cuando tenemos distintos tipos de email, por ejemplo el email de contacto
ContactEmail extends Email o el de recuperar password
ResetPasswordEmail extends Email.
EmailException
El método send() no retorna boolean, sino que retorna
el propio objeto Email en caso de éxito o lanza una
EmailException en caso de error.
La clase EmailException se puede implementar a modo de clase vacía
que herede de Exception.
Ejemplo
Massive mailing
Si queremos enviar muchos emails iguales de golpe, no hace falta crear múltiples
instancias de Email, simplemente creamos una y vamos enviando el
mismo mensaje a los distintos destinatarios.
El método send() acepta como parámetro el email del
destinatario, si no se quiere usar el email guardado en la propiedad to.
Con la siguiente estrategia, podemos enviar múltiples mensajes a la vez.