mouf / utils.mailer.swift-mail-service
This package contains a mailer for the Mouf framework that uses a SMTP server to send mail. The package is a wrapper around the Swift_Mailer class of Swift.
Installs: 28 196
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 15
Forks: 0
Open Issues: 1
Type:mouf-library
Requires
- php: >=5.3.0
- mouf/utils.common.mouf-helpers: ~2.0
- mouf/utils.mailer.mail-interface: ~2.0
- psr/log: ~1.0
- swiftmailer/swiftmailer: ~5.2
This package is auto-updated.
Last update: 2024-10-15 04:58:05 UTC
README
The SwiftMailService
is a wrapper of the Swift library for the Mouf PHP framework.
It is used to send mails using a SMTP mail server.
The SwiftMailService
is designed to be simple to use. Behind the scene, the SwiftMailService
is using the more complex (and more powerful) Swift Mailer mail service.
Install
This package is part of the Mouf PHP framework. As such, it comes with a nice graphical installer.
You can configure the settings to connect to your SMTP server.
There is one compulsory parameter: host, which is the address of the server.
By default, on Linux systems, it is likely you will use the local mail server (host=127.0.0.1). You will have a "sendmail" or "postfix" server installed on your machine. If you are performing your developments on a Windows machine, it is quite likely that you will not have an SMTP server on your machine. You will therefore have to use a remote server. To access the remote server, you will certainly have to use login/passwords, etc...
When this package is installed, it will create 2 instances:
- a
swiftMailService
that implements Mouf'sMailServiceInterface
- a
swiftMailer
that is the classic Swift mailer.
After installation, you will see that a number of constants have been added to your config.php
file.
When deploying on other servers, you can of course change those constants to adapt to the settings of the server.
What? 2 instances?
There are both a swiftMailService
and a swiftMailer
. Which should you use?
Well it depends...
-
swiftMailService
implements Mouf'sMailServiceInterface
. This is a simple interface to create mails easily. Use it if you have simple needs. If you use this instance, you will be able to easily replace your Swift mailer with any other mailer compatible with theMailServiceInterface
, like theSmtpMailService
(that uses ZendMail as a backend), or the DBMailService (that stores mails in database instead of sending them). -
swiftMailer
is great if you want a greater control over your mails, or if you are already used to using Swift directly. It is also greatly documented over the web.
Tip: using your gmail account to send mails
In a development environment, it can be useful to use you gmail account. Here are the settings:
- host => 'smtp.gmail.com'
- ssl => 'tls'
- port => 587
- auth => 'login'
- username => Your gmail mail address
- password => Your password
Example use
Below is a sample code you can use to send a mail.
use Mouf\Utils\Mailer\Mail; use Mouf\Utils\Mailer\SwiftMailService; // First, let's create the mail object $mail = new Mail(); $mail->setTitle("My mail"); $mail->setBodyText("This is my mail!"); $mail->setBodyHtml("This is my <b>mail</b>!"); $mail->setFrom(new MailAddress("my@server.com", "Server")); $mail->addToRecipient(new MailAddress("david@email.com", "David")); // Let's get the instance of the service $mailService = Mouf::getSwiftMailService(); // Finally, we send the mail $mailService->send($mail);
Sending a mail with an attachment
use Mouf\Utils\Mailer\Mail; use Mouf\Utils\Mailer\SwiftMailService; // The mail object $mail = new Mail(); $mail->setTitle("My mail"); $mail->setBodyHtml("A nice image: <img src='cid:my@img.resource'/>"); $mail->setFrom(new MailAddress("my@server.com", "Server")); $mail->addToRecipient(new MailAddress("david@email.com", "David")); // The attachment $attachment = new MailAttachment(); $attachment->setFileContent(file_get_contents('attachment.pdf')); $attachment->setMimeType('application/pdf'); $mail->addAttachement($attachment); // Let's get the instance of the service $mailService = Mouf::getSwiftMailService(); // Finally, we send the mail $mailService->send($mail);
Sending a mail with embedded image
use Mouf\Utils\Mailer\Mail; use Mouf\Utils\Mailer\SwiftMailService; // The image we will embed: $embeddedImage = new MailAttachment(); $embeddedImage->setFileContent(file_get_contents('img.png')); $embeddedImage->setMimeType('image/png'); $embeddedImage->setAttachmentDisposition('inline'); // Note: the format of the ID should be in the syntax of a mail: xxx@yyy.zzz $embeddedImage->setContentId('my@img.resource'); // The mail object $mail = new Mail(); $mail->addAttachement($embeddedImage); $mail->setTitle("My mail"); $mail->setBodyHtml("A nice image: <img src='cid:my@img.resource'/>"); $mail->setFrom(new MailAddress("my@server.com", "Server")); $mail->addToRecipient(new MailAddress("david@email.com", "David")); // Let's get the instance of the service $mailService = Mouf::getSwiftMailService(); // Finally, we send the mail $mailService->send($mail);
To learn more about how to send mails, refer to the Introduction to Mouf's mail architecture.