diff --git a/app/controllers/OrganizationController.scala b/app/controllers/OrganizationController.scala index ac987757fd3..7a7bc8ae31c 100755 --- a/app/controllers/OrganizationController.scala +++ b/app/controllers/OrganizationController.scala @@ -191,12 +191,7 @@ class OrganizationController @Inject()( organization <- organizationDAO .findOne(request.identity._organization) ?~> Messages("organization.notFound") ~> NOT_FOUND userEmail <- userService.emailFor(request.identity) - _ = Mailer ! Send(defaultMails.extendPricingPlanMail(request.identity, userEmail)) - _ = Mailer ! Send( - defaultMails.upgradePricingPlanRequestMail(request.identity, - userEmail, - organization.name, - "Extend WEBKNOSSOS plan by a year")) + _ = Mailer ! Send(defaultMails.extendPricingPlanMail(request.identity, userEmail, organization.name)) } yield Ok } @@ -213,12 +208,7 @@ class OrganizationController @Inject()( } else { defaultMails.upgradePricingPlanToPowerMail _ } - _ = Mailer ! Send(mail(request.identity, userEmail)) - _ = Mailer ! Send( - defaultMails.upgradePricingPlanRequestMail(request.identity, - userEmail, - organization.name, - s"Upgrade WEBKNOSSOS Plan to $requestedPlan")) + _ = Mailer ! Send(mail(request.identity, userEmail, organization.name)) } yield Ok } @@ -228,12 +218,8 @@ class OrganizationController @Inject()( _ <- bool2Fox(request.identity.isAdmin) ?~> Messages("organization.pricingUpgrades.notAuthorized") organization <- organizationDAO.findOne(request.identity._organization) ?~> Messages("organization.notFound") ~> NOT_FOUND userEmail <- userService.emailFor(request.identity) - _ = Mailer ! Send(defaultMails.upgradePricingPlanUsersMail(request.identity, userEmail, requestedUsers)) _ = Mailer ! Send( - defaultMails.upgradePricingPlanRequestMail(request.identity, - userEmail, - organization.name, - s"Purchase $requestedUsers additional users")) + defaultMails.upgradePricingPlanUsersMail(request.identity, userEmail, requestedUsers, organization.name)) } yield Ok } @@ -243,12 +229,8 @@ class OrganizationController @Inject()( _ <- bool2Fox(request.identity.isAdmin) ?~> Messages("organization.pricingUpgrades.notAuthorized") organization <- organizationDAO.findOne(request.identity._organization) ?~> Messages("organization.notFound") ~> NOT_FOUND userEmail <- userService.emailFor(request.identity) - _ = Mailer ! Send(defaultMails.upgradePricingPlanStorageMail(request.identity, userEmail, requestedStorage)) _ = Mailer ! Send( - defaultMails.upgradePricingPlanRequestMail(request.identity, - userEmail, - organization.name, - s"Purchase $requestedStorage TB additional storage")) + defaultMails.upgradePricingPlanStorageMail(request.identity, userEmail, requestedStorage, organization.name)) } yield Ok } diff --git a/app/mail/DefaultMails.scala b/app/mail/DefaultMails.scala index 59276c8936f..2ff6c01a578 100755 --- a/app/mail/DefaultMails.scala +++ b/app/mail/DefaultMails.scala @@ -13,6 +13,7 @@ class DefaultMails @Inject()(conf: WkConf) { private val uri = conf.Http.uri private val defaultSender = conf.Mail.defaultSender + private val supportEmail = conf.Mail.supportEmail private val newOrganizationMailingList = conf.WebKnossos.newOrganizationMailingList private val additionalFooter = conf.Mail.additionalFooter @@ -98,59 +99,63 @@ class DefaultMails @Inject()(conf: WkConf) { from = defaultSender, subject = "Help requested // Feedback provided", bodyHtml = html.mail.help(user.name, organizationName, message, currentUrl, additionalFooter).body, - recipients = List("hello@webknossos.org", userEmail) + recipients = List(supportEmail), + ccRecipients = List(userEmail), + replyTo = List(supportEmail, userEmail) ) - def extendPricingPlanMail(user: User, userEmail: String): Mail = + def extendPricingPlanMail(user: User, userEmail: String, organizationName: String): Mail = Mail( from = defaultSender, - subject = "WEBKNOSSOS Plan Extension Request", - bodyHtml = html.mail.extendPricingPlan(user.name, additionalFooter).body, - recipients = List(userEmail) + subject = "WEBKNOSSOS Plan Extension", + bodyHtml = html.mail.extendPricingPlan(user.name, additionalFooter, organizationName).body, + recipients = List(userEmail), + ccRecipients = List(supportEmail), + replyTo = List(userEmail, supportEmail) ) - def upgradePricingPlanToTeamMail(user: User, userEmail: String): Mail = + def upgradePricingPlanToTeamMail(user: User, userEmail: String, organizationName: String): Mail = Mail( from = defaultSender, - subject = "WEBKNOSSOS Plan Upgrade Request", - bodyHtml = html.mail.upgradePricingPlanToTeam(user.name, additionalFooter).body, - recipients = List(userEmail) + subject = "WEBKNOSSOS Upgrade: Team Plan", + bodyHtml = html.mail.upgradePricingPlanToTeam(user.name, additionalFooter, organizationName).body, + recipients = List(userEmail), + ccRecipients = List(supportEmail), + replyTo = List(userEmail, supportEmail) ) - def upgradePricingPlanToPowerMail(user: User, userEmail: String): Mail = + def upgradePricingPlanToPowerMail(user: User, userEmail: String, organizationName: String): Mail = Mail( from = defaultSender, - subject = "WEBKNOSSOS Plan Upgrade Request", - bodyHtml = html.mail.upgradePricingPlanToPower(user.name, additionalFooter).body, - recipients = List(userEmail) + subject = "WEBKNOSSOS Upgrade: Power Plan", + bodyHtml = html.mail.upgradePricingPlanToPower(user.name, additionalFooter, organizationName).body, + recipients = List(userEmail), + ccRecipients = List(supportEmail), + replyTo = List(userEmail, supportEmail) ) - def upgradePricingPlanUsersMail(user: User, userEmail: String, requestedUsers: Int): Mail = + def upgradePricingPlanUsersMail(user: User, userEmail: String, requestedUsers: Int, organizationName: String): Mail = Mail( from = defaultSender, - subject = "Request to upgrade WEBKNOSSOS users", - bodyHtml = html.mail.upgradePricingPlanUsers(user.name, requestedUsers, additionalFooter).body, - recipients = List(userEmail) - ) - - def upgradePricingPlanStorageMail(user: User, userEmail: String, requestedStorage: Int): Mail = - Mail( - from = defaultSender, - subject = "Request to upgrade WEBKNOSSOS storage", - bodyHtml = html.mail.upgradePricingPlanStorage(user.name, requestedStorage, additionalFooter).body, - recipients = List(userEmail) + subject = "WEBKNOSSOS Upgrade: Additional Users", + bodyHtml = html.mail.upgradePricingPlanUsers(user.name, requestedUsers, additionalFooter, organizationName).body, + recipients = List(userEmail), + ccRecipients = List(supportEmail), + replyTo = List(userEmail, supportEmail) ) - def upgradePricingPlanRequestMail(user: User, + def upgradePricingPlanStorageMail(user: User, userEmail: String, - organizationName: String, - messageBody: String): Mail = + requestedStorage: Int, + organizationName: String): Mail = Mail( from = defaultSender, - subject = "Request to upgrade WEBKNOSSOS plan", + subject = "WEBKNOSSOS Upgrade: Additional Storage", bodyHtml = - html.mail.upgradePricingPlanRequest(user.name, userEmail, organizationName, messageBody, additionalFooter).body, - recipients = List("hello@webknossos.org") + html.mail.upgradePricingPlanStorage(user.name, requestedStorage, additionalFooter, organizationName).body, + recipients = List(userEmail), + ccRecipients = List(supportEmail), + replyTo = List(userEmail, supportEmail) ) def jobSuccessfulGenericMail(user: User, diff --git a/app/mail/Mail.scala b/app/mail/Mail.scala index 825e338151b..df11d98f7e5 100644 --- a/app/mail/Mail.scala +++ b/app/mail/Mail.scala @@ -8,6 +8,6 @@ case class Mail(from: String = "", ccRecipients: List[String] = List(), bccRecipients: List[String] = List(), contentType: Option[String] = None, - replyTo: Option[String] = None, + replyTo: List[String] = List(), charset: String = "utf-8", headers: Map[String, String] = Map[String, String]()) diff --git a/app/utils/WkConf.scala b/app/utils/WkConf.scala index d728322079c..61ee4b41173 100644 --- a/app/utils/WkConf.scala +++ b/app/utils/WkConf.scala @@ -168,6 +168,7 @@ class WkConf @Inject()(configuration: Configuration, certificateValidationServic val pass: String = get[String]("mail.smtp.pass") } + val supportEmail: String = get[String]("mail.supportEmail") val defaultSender: String = get[String]("mail.defaultSender") def additionalFooter: String = get[String]("mail.additionalFooter") diff --git a/app/views/mail/extendPricingPlan.scala.html b/app/views/mail/extendPricingPlan.scala.html index 5976d2802e5..47b468e2fdc 100644 --- a/app/views/mail/extendPricingPlan.scala.html +++ b/app/views/mail/extendPricingPlan.scala.html @@ -1,9 +1,8 @@ -@( name: String, additionalFooter: String ) +@(name: String, additionalFooter: String, organizationName: String) @emailBaseTemplate(additionalFooter) {
Hi @{name}
-Thank you for requesting to extend your current WEBKNOSSOS plan. Our sales team will be in contact with - you shortly with a formal offer.
- +Thank you for your interest in extending your WEBKNOSSOS plan. Our sales team will contact you shortly.
+Organization: @organizationName
With best regards,
the WEBKNOSSOS team
Hi WEBKNOSSOS sales team
-There is a new request to upgrade a WEBKNOSSOS organization with additional plan/features.
-User: @{name} (@{email})
-Organization: @{organizationName}
-Request: @{messageBody}
- -With best regards,
WEBKNOSSOS
Hi @{name}
-Thank you for requesting to upgrade your WEBKNOSSOS plan with more storage. Our sales team will be in contact with you shortly with a formal offer.
- +Thank you for interest in adding more storage to your WEBKNOSSOS plan. Our sales team will contact you shortly.
Requested additional storage: @{requestedStorage}TB
- +Organization: @organizationName
With best regards,
the WEBKNOSSOS team
Hi @{name}
-Thank you for requesting an upgrade to a WEBKNOSSOS Power plan. Our sales team will be in contact with - you shortly with a formal offer.
- - +Thank you for your interest in the WEBKNOSSOS Power plan. To discuss your specific needs, our sales team will contact you shortly.
+Organization: @organizationName
With best regards,
the WEBKNOSSOS team
Hi @{name}
-Thank you for requesting an upgrade to a WEBKNOSSOS Team plan. Our sales team will be in contact with - you shortly with a formal offer.
- - - +Thank you for your interest in the WEBKNOSSOS Team plan. To discuss your specific needs, our sales team will contact you shortly.
+Organization: @organizationName
With best regards,
the WEBKNOSSOS team
Hi @{name}
-Thank you for requesting to upgrade your WEBKNOSSOS plan with more users. Our sales team will be in contact with - you shortly with a formal offer.
- +Thank you for interest in adding more users to your WEBKNOSSOS plan. Our sales team will contact you shortly.
Requested additional users: @{requestedUsers}
- +Organization: @organizationName
With best regards,
the WEBKNOSSOS team