Skip to content

Change reply-to on emails #8449

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 4 additions & 22 deletions app/controllers/OrganizationController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand All @@ -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
}

Expand All @@ -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
}

Expand All @@ -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
}

Expand Down
67 changes: 36 additions & 31 deletions app/mail/DefaultMails.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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("[email protected]", 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("[email protected]")
html.mail.upgradePricingPlanStorage(user.name, requestedStorage, additionalFooter, organizationName).body,
recipients = List(userEmail),
ccRecipients = List(supportEmail),
replyTo = List(userEmail, supportEmail)
)

def jobSuccessfulGenericMail(user: User,
Expand Down
2 changes: 1 addition & 1 deletion app/mail/Mail.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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]())
1 change: 1 addition & 0 deletions app/utils/WkConf.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
7 changes: 3 additions & 4 deletions app/views/mail/extendPricingPlan.scala.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
@( name: String, additionalFooter: String )
@(name: String, additionalFooter: String, organizationName: String)

@emailBaseTemplate(additionalFooter) {
<p>Hi @{name}</p>
<p>Thank you for requesting to extend your current WEBKNOSSOS plan. Our sales team will be in contact with
you shortly with a formal offer.</p>

<p>Thank you for your interest in extending your WEBKNOSSOS plan. Our sales team will contact you shortly.</p>
<p>Organization: @organizationName</p>
<p>With best regards,<br />the WEBKNOSSOS team</p>
}
11 changes: 0 additions & 11 deletions app/views/mail/upgradePricingPlanRequest.scala.html

This file was deleted.

7 changes: 3 additions & 4 deletions app/views/mail/upgradePricingPlanStorage.scala.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
@(name: String, requestedStorage: Int, additionalFooter: String)
@(name: String, requestedStorage: Int, additionalFooter: String, organizationName: String)

@emailBaseTemplate(additionalFooter) {
<p>Hi @{name}</p>
<p>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.</p>

<p>Thank you for interest in adding more storage to your WEBKNOSSOS plan. Our sales team will contact you shortly.</p>
<p>Requested additional storage: @{requestedStorage}TB</p>

<p>Organization: @organizationName</p>
<p>With best regards,<br />the WEBKNOSSOS team</p>
}
8 changes: 3 additions & 5 deletions app/views/mail/upgradePricingPlanToPower.scala.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
@( name: String, additionalFooter: String)
@( name: String, additionalFooter: String, organizationName: String)

@emailBaseTemplate(additionalFooter) {
<p>Hi @{name}</p>
<p>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.</p>


<p>Thank you for your interest in the WEBKNOSSOS Power plan. To discuss your specific needs, our sales team will contact you shortly.</p>
<p>Organization: @organizationName</p>
<p>With best regards,<br />the WEBKNOSSOS team</p>
}
9 changes: 3 additions & 6 deletions app/views/mail/upgradePricingPlanToTeam.scala.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
@( name: String, additionalFooter: String )
@(name: String, additionalFooter: String, organizationName: String)

@emailBaseTemplate(additionalFooter) {
<p>Hi @{name}</p>
<p>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.</p>



<p>Thank you for your interest in the WEBKNOSSOS Team plan. To discuss your specific needs, our sales team will contact you shortly.</p>
<p>Organization: @organizationName</p>
<p>With best regards,<br />the WEBKNOSSOS team</p>
}
8 changes: 3 additions & 5 deletions app/views/mail/upgradePricingPlanUsers.scala.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
@( name: String, requestedUsers: Int, additionalFooter: String)
@(name: String, requestedUsers: Int, additionalFooter: String, organizationName: String)

@emailBaseTemplate(additionalFooter) {
<p>Hi @{name}</p>
<p>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.</p>

<p>Thank you for interest in adding more users to your WEBKNOSSOS plan. Our sales team will contact you shortly.</p>
<p>Requested additional users: @{requestedUsers}</p>

<p>Organization: @organizationName</p>
<p>With best regards,<br />the WEBKNOSSOS team</p>
}
1 change: 1 addition & 0 deletions conf/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ mail {
pass = ""
}
defaultSender = "WEBKNOSSOS <[email protected]>"
supportEmail = "Support <[email protected]>"
additionalFooter = "" # Additional line added to the email footer. HTML can be used here, won’t be escaped but inserted directly.
mailchimp {
host = ""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export const teamPlanFeatures = [
"Everything from Basic plan",
];
export const powerPlanFeatures = [
"Unlimited Users",
"Up to Unlimited Users",
"Segmentation Proof-Reading Tool",
"On-premise or dedicated hosting solutions available",
"Integration with your HPC and storage servers",
Expand Down