Vert.x service for sending SMTP emails via the vert.x event bus by a mail service running on another machine on the local network.
MailService
The MailService interface supports sending mails through another server running on the local network by the event bus.
To use this project, add the following dependency to the dependencies section of your build descriptor:
-
Maven (in your
pom.xml
):
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-mail-service</artifactId>
<version>3.3.0.CR2</version>
</dependency>
-
Gradle (in your
build.gradle
file):
compile io.vertx:vertx-mail-service:3.3.0.CR2
Service client
The service client only needs the name of the service address as parameter, the default is "vertx.mail".
require 'vertx-mail/mail_service'
mailService = VertxMail::MailService.create_event_bus_proxy(vertx, "vertx.mail")
The behaviour of MailClient and MailService is the same, if you like you can use the MailClient interface to store the MailService instance.
A more complete example for sending a mail via the event bus is this:
require 'vertx-mail/mail_service'
mailService = VertxMail::MailService.create_event_bus_proxy(vertx, "vertx.mail")
email = {
'from' => "user@example.com",
'bounceAddress' => "bounce@example.com",
'to' => "user@example.com"
}
mailService.send_mail(email) { |result_err,result|
puts "mail finished"
if (result_err == nil)
puts result
else
puts "got exception"
result_err.print_stack_trace()
end
}
Service listener
To run the service listener that sends the mails, you need to start it separately e.g. with the vertx command
vertx run service:io.vertx.mail-service
or deploy the verticle inside your program.
If you have a smtp server running on the machine on port 25, you can use the default config.