I am trying to send a mail to my gmail account . i am getting response as "Email Send". But I am not getting any mail. i am using Scal Playframework(2.6)
libraryDependencies += "com.typesafe.play" %% "play-mailer" % "6.0.0"
libraryDependencies += "com.typesafe.play" %% "play-mailer-guice" % "6.0.0"
This is far what i have done
Controller Class
package controllers
import play.api.libs.mailer._
import java.io.File
import java.io.File
import java.io.InputStream
import play.api.Environment
import org.apache.commons.mail.EmailAttachment
import play.api.libs.mailer._
import play.api.mvc.{AbstractController, Action, Controller, ControllerComponents}
import akka.http.scaladsl.model.HttpHeader.ParsingResult.Ok
import org.apache.commons.mail.EmailAttachment
import javax.inject.Inject
import play.api.libs.json.Json
class MailController @Inject()(mailer: MailerClient, environment: Environment) extends Controller {
def sendWithCustomMailer = Action {
// val mailer = new SMTPMailer(SMTPConfiguration("typesafe.org", 1234))
// val id = mailer.send(Email("Simple email", "Mister FROM <[email protected]>"))
val emailfrom="[email protected]"
val emailto="[email protected]"
val subject ="Simple Email"
val bodytext="A text message";
val email = Email("Simple email", ""+emailfrom+"", Seq(""+emailto+""), bodyText = Some("A text message"))
mailer.send(email)
Ok(s"Email sent!")
}
And I have added this in my Application.conf
play.mailer {
smtp.host = "smtp.gmail.com" // (mandatory)
port = 465// (defaults to 25)
ssl = true // (defaults to no)
tls = false // (defaults to no)
tlsRequired =false // (defaults to no)
user = "[email protected]" // (optional)
password = "12121212" // (optional)
// debug = false // (defaults to no, to take effect you also need to set the log level to "DEBUG" for the application logger)
timeout = 600 // (defaults to 60s in milliseconds)
connectiontimeout = 600 // (defaults to 60s in milliseconds)
mock = true // (defaults to no, will only log all the email properties instead of sending an email)
}
I think you wrongly configured host part. You wrote smtp.host = "smtp.gmail.com"
but correct value is host = "smtp.gmail.com"
.
In my project working config for google smtp is following:
play {
mailer {
host = "smtp.gmail.com"
port = 587
tls = yes
user = "[email protected]"
password = "xxxxxxx"
}
}