La clase Email
Í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_EMAIL
definida 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_NAME
definida 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.