{{body}}
diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php
index b6056b9e7..0cacefac5 100644
--- a/app/controllers/api/account.php
+++ b/app/controllers/api/account.php
@@ -1091,50 +1091,60 @@ App::post('/v1/account/sessions/magic-url')
$url['query'] = Template::mergeQuery(((isset($url['query'])) ? $url['query'] : ''), ['userId' => $user->getId(), 'secret' => $loginSecret, 'expire' => $expire, 'project' => $project->getId()]);
$url = Template::unParseURL($url);
- $from = $project->isEmpty() || $project->getId() === 'console' ? '' : \sprintf($locale->getText('emails.sender'), $project->getAttribute('name'));
$body = $locale->getText("emails.magicSession.body");
$subject = $locale->getText("emails.magicSession.subject");
-
- $smtpEnabled = $project->getAttribute('smtp', [])['enabled'] ?? false;
$customTemplate = $project->getAttribute('templates', [])['email.magicSession-' . $locale->default] ?? [];
- if ($smtpEnabled && !empty($customTemplate)) {
- $body = $customTemplate['message'] ?? '';
- $subject = $customTemplate['subject'] ?? $subject;
- $from = $customTemplate['senderName'] ?? $from;
- $senderEmail = $customTemplate['senderEmail'] ?? '';
- $senderEmail = $senderEmail ?: ($smtp['senderEmail'] ?? '');
- $senderEmail = $senderEmail ?: App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
+ $message = Template::fromFile(__DIR__ . '/../../config/locale/templates/email-inner-base.tpl');
+ $message->setParam('{{body}}', $body);
+ $body = $message->render();
- $senderName = $customTemplate['senderName'] ?? '';
- $senderName = $senderName ?: ($smtp['senderName'] ?? '');
- $senderName = $senderName ?: App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
+ $smtp = $project->getAttribute('smtp', []);
+ $smtpEnabled = $smtp['enabled'] ?? false;
- $replyTo = $customTemplate['replyTo'] ?? '';
- $replyTo = $replyTo ?: ($smtp['replyTo'] ?? '');
- $replyTo = $senderEmail;
+ $senderEmail = App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
+ $senderName = App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
+ $replyTo = "";
+
+ if ($smtpEnabled) {
+ if (!empty($smtp['senderEmail'])) {
+ $senderEmail = $smtp['senderEmail'];
+ }
+ if (!empty($smtp['senderName'])) {
+ $senderName = $smtp['senderName'];
+ }
+ if (!empty($smtp['replyTo'])) {
+ $replyTo = $smtp['replyTo'];
+ }
- $smtp = $project->getAttribute('smtp', []);
$mails
->setSmtpHost($smtp['host'] ?? '')
->setSmtpPort($smtp['port'] ?? '')
->setSmtpUsername($smtp['username'] ?? '')
->setSmtpPassword($smtp['password'] ?? '')
- ->setSmtpSecure($smtp['secure'] ?? '')
- ->setSmtpReplyTo($replyTo)
- ->setSmtpSenderEmail($senderEmail)
- ->setSmtpSenderName($senderName);
- } else {
- $message = Template::fromFile(__DIR__ . '/../../config/locale/templates/email-inner-base.tpl');
- $message->setParam('{{body}}', $body);
- $body = $message->render();
-
- $mails
- ->setSmtpReplyTo(App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM))
- ->setSmtpSenderEmail(App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM))
- ->setSmtpSenderName(App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server'));
+ ->setSmtpSecure($smtp['secure'] ?? '');
}
+ if (!empty($customTemplate)) {
+ if (!empty($customTemplate['senderEmail'])) {
+ $senderEmail = $customTemplate['senderEmail'];
+ }
+ if (!empty($customTemplate['senderName'])) {
+ $senderName = $customTemplate['senderName'];
+ }
+ if (!empty($customTemplate['replyTo'])) {
+ $replyTo = $customTemplate['replyTo'];
+ }
+
+ $body = $customTemplate['message'] ?? '';
+ $subject = $customTemplate['subject'] ?? $subject;
+ }
+
+ $mails
+ ->setSmtpReplyTo($replyTo)
+ ->setSmtpSenderEmail($senderEmail)
+ ->setSmtpSenderName($senderName);
+
$emailVariables = [
'subject' => $subject,
'hello' => $locale->getText("emails.magicSession.hello"),
@@ -1153,9 +1163,8 @@ App::post('/v1/account/sessions/magic-url')
$mails
->setSubject($subject)
- ->setBody($body->render())
+ ->setBody($body)
->setVariables($emailVariables)
- ->setFrom($from)
->setRecipient($user->getAttribute('email'))
->trigger()
;
@@ -2539,50 +2548,60 @@ App::post('/v1/account/recovery')
$url = Template::unParseURL($url);
$projectName = $project->isEmpty() ? 'Console' : $project->getAttribute('name', '[APP-NAME]');
- $from = $project->isEmpty() || $project->getId() === 'console' ? '' : \sprintf($locale->getText('emails.sender'), $projectName);
$body = $locale->getText("emails.recovery.body");
$subject = $locale->getText("emails.recovery.subject");
-
- $smtpEnabled = $project->getAttribute('smtp', [])['enabled'] ?? false;
$customTemplate = $project->getAttribute('templates', [])['email.recovery-' . $locale->default] ?? [];
- if ($smtpEnabled && !empty($customTemplate)) {
- $body = $customTemplate['message'];
- $subject = $customTemplate['subject'] ?? $subject;
- $from = $customTemplate['senderName'] ?? $from;
- $senderEmail = $customTemplate['senderEmail'] ?? '';
- $senderEmail = $senderEmail ?: ($smtp['senderEmail'] ?? '');
- $senderEmail = $senderEmail ?: App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
+ $message = Template::fromFile(__DIR__ . '/../../config/locale/templates/email-inner-base.tpl');
+ $message->setParam('{{body}}', $body);
+ $body = $message->render();
- $senderName = $customTemplate['senderName'] ?? '';
- $senderName = $senderName ?: ($smtp['senderName'] ?? '');
- $senderName = $senderName ?: App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
+ $smtp = $project->getAttribute('smtp', []);
+ $smtpEnabled = $smtp['enabled'] ?? false;
- $replyTo = $customTemplate['replyTo'] ?? '';
- $replyTo = $replyTo ?: ($smtp['replyTo'] ?? '');
- $replyTo = $senderEmail;
+ $senderEmail = App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
+ $senderName = App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
+ $replyTo = "";
+
+ if ($smtpEnabled) {
+ if (!empty($smtp['senderEmail'])) {
+ $senderEmail = $smtp['senderEmail'];
+ }
+ if (!empty($smtp['senderName'])) {
+ $senderName = $smtp['senderName'];
+ }
+ if (!empty($smtp['replyTo'])) {
+ $replyTo = $smtp['replyTo'];
+ }
- $smtp = $project->getAttribute('smtp', []);
$mails
->setSmtpHost($smtp['host'] ?? '')
->setSmtpPort($smtp['port'] ?? '')
->setSmtpUsername($smtp['username'] ?? '')
->setSmtpPassword($smtp['password'] ?? '')
- ->setSmtpSecure($smtp['secure'] ?? '')
- ->setSmtpReplyTo($replyTo)
- ->setSmtpSenderEmail($senderEmail)
- ->setSmtpSenderName($senderName);
- } else {
- $message = Template::fromFile(__DIR__ . '/../../config/locale/templates/email-inner-base.tpl');
- $message->setParam('{{body}}', $body);
- $body = $message->render();
-
- $mails
- ->setSmtpReplyTo(App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM))
- ->setSmtpSenderEmail(App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM))
- ->setSmtpSenderName(App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server'));
+ ->setSmtpSecure($smtp['secure'] ?? '');
}
+ if (!empty($customTemplate)) {
+ if (!empty($customTemplate['senderEmail'])) {
+ $senderEmail = $customTemplate['senderEmail'];
+ }
+ if (!empty($customTemplate['senderName'])) {
+ $senderName = $customTemplate['senderName'];
+ }
+ if (!empty($customTemplate['replyTo'])) {
+ $replyTo = $customTemplate['replyTo'];
+ }
+
+ $body = $customTemplate['message'] ?? '';
+ $subject = $customTemplate['subject'] ?? $subject;
+ }
+
+ $mails
+ ->setSmtpReplyTo($replyTo)
+ ->setSmtpSenderEmail($senderEmail)
+ ->setSmtpSenderName($senderName);
+
$emailVariables = [
'subject' => $subject,
'hello' => $locale->getText("emails.recovery.hello"),
@@ -2605,7 +2624,6 @@ App::post('/v1/account/recovery')
->setName($profile->getAttribute('name'))
->setBody($body)
->setVariables($emailVariables)
- ->setFrom($from)
->setSubject($subject)
->trigger();
;
@@ -2781,50 +2799,60 @@ App::post('/v1/account/verification')
$url = Template::unParseURL($url);
$projectName = $project->isEmpty() ? 'Console' : $project->getAttribute('name', '[APP-NAME]');
- $from = $project->isEmpty() || $project->getId() === 'console' ? '' : \sprintf($locale->getText('emails.sender'), $projectName);
$body = $locale->getText("emails.verification.body");
$subject = $locale->getText("emails.verification.subject");
-
- $smtpEnabled = $project->getAttribute('smtp', [])['enabled'] ?? false;
$customTemplate = $project->getAttribute('templates', [])['email.verification-' . $locale->default] ?? [];
- if ($smtpEnabled && !empty($customTemplate)) {
- $body = $customTemplate['message'] ?? '';
- $subject = $customTemplate['subject'] ?? $subject;
- $from = $customTemplate['senderName'] ?? $from;
- $senderEmail = $customTemplate['senderEmail'] ?? '';
- $senderEmail = $senderEmail ?: ($smtp['senderEmail'] ?? '');
- $senderEmail = $senderEmail ?: App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
+ $message = Template::fromFile(__DIR__ . '/../../config/locale/templates/email-inner-base.tpl');
+ $message->setParam('{{body}}', $body);
+ $body = $message->render();
- $senderName = $customTemplate['senderName'] ?? '';
- $senderName = $senderName ?: ($smtp['senderName'] ?? '');
- $senderName = $senderName ?: App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
+ $smtp = $project->getAttribute('smtp', []);
+ $smtpEnabled = $smtp['enabled'] ?? false;
- $replyTo = $customTemplate['replyTo'] ?? '';
- $replyTo = $replyTo ?: ($smtp['replyTo'] ?? '');
- $replyTo = $senderEmail;
+ $senderEmail = App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
+ $senderName = App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
+ $replyTo = "";
+
+ if ($smtpEnabled) {
+ if (!empty($smtp['senderEmail'])) {
+ $senderEmail = $smtp['senderEmail'];
+ }
+ if (!empty($smtp['senderName'])) {
+ $senderName = $smtp['senderName'];
+ }
+ if (!empty($smtp['replyTo'])) {
+ $replyTo = $smtp['replyTo'];
+ }
- $smtp = $project->getAttribute('smtp', []);
$mails
->setSmtpHost($smtp['host'] ?? '')
->setSmtpPort($smtp['port'] ?? '')
->setSmtpUsername($smtp['username'] ?? '')
->setSmtpPassword($smtp['password'] ?? '')
- ->setSmtpSecure($smtp['secure'] ?? '')
- ->setSmtpReplyTo($replyTo)
- ->setSmtpSenderEmail($senderEmail)
- ->setSmtpSenderName($senderName);
- } else {
- $message = Template::fromFile(__DIR__ . '/../../config/locale/templates/email-inner-base.tpl');
- $message->setParam('{{body}}', $body);
- $body = $message->render();
-
- $mails
- ->setSmtpReplyTo(App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM))
- ->setSmtpSenderEmail(App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM))
- ->setSmtpSenderName(App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server'));
+ ->setSmtpSecure($smtp['secure'] ?? '');
}
+ if (!empty($customTemplate)) {
+ if (!empty($customTemplate['senderEmail'])) {
+ $senderEmail = $customTemplate['senderEmail'];
+ }
+ if (!empty($customTemplate['senderName'])) {
+ $senderName = $customTemplate['senderName'];
+ }
+ if (!empty($customTemplate['replyTo'])) {
+ $replyTo = $customTemplate['replyTo'];
+ }
+
+ $body = $customTemplate['message'] ?? '';
+ $subject = $customTemplate['subject'] ?? $subject;
+ }
+
+ $mails
+ ->setSmtpReplyTo($replyTo)
+ ->setSmtpSenderEmail($senderEmail)
+ ->setSmtpSenderName($senderName);
+
$emailVariables = [
'subject' => $subject,
'hello' => $locale->getText("emails.verification.hello"),
@@ -2845,7 +2873,6 @@ App::post('/v1/account/verification')
->setSubject($subject)
->setBody($body)
->setVariables($emailVariables)
- ->setFrom($from)
->setRecipient($user->getAttribute('email'))
->setName($user->getAttribute('name') ?? '')
->trigger()
diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php
index 1359d23b3..c3c033648 100644
--- a/app/controllers/api/projects.php
+++ b/app/controllers/api/projects.php
@@ -1682,13 +1682,11 @@ App::get('/v1/projects/:projectId/templates/email/:type/:locale')
->setParam('{{direction}}', $localeObj->getText('settings.direction'));
$message = $message->render();
- $from = $project->isEmpty() || $project->getId() === 'console' ? '' : \sprintf($localeObj->getText('emails.sender'), $project->getAttribute('name'));
- $from = empty($from) ? \urldecode(App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server')) : $from;
$template = [
'message' => $message,
'subject' => $localeObj->getText('emails.' . $type . '.subject'),
- 'senderEmail' => App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', ''),
- 'senderName' => $from
+ 'senderEmail' => '',
+ 'senderName' => ''
];
}
diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php
index da669c40e..f4d4604b1 100644
--- a/app/controllers/api/teams.php
+++ b/app/controllers/api/teams.php
@@ -543,50 +543,60 @@ App::post('/v1/teams/:teamId/memberships')
if (!empty($email)) {
$projectName = $project->isEmpty() ? 'Console' : $project->getAttribute('name', '[APP-NAME]');
- $from = $project->isEmpty() || $project->getId() === 'console' ? '' : \sprintf($locale->getText('emails.sender'), $projectName);
$body = $locale->getText("emails.invitation.body");
$subject = \sprintf($locale->getText("emails.invitation.subject"), $team->getAttribute('name'), $projectName);
-
- $smtpEnabled = $project->getAttribute('smtp', [])['enabled'] ?? false;
$customTemplate = $project->getAttribute('templates', [])['email.invitation-' . $locale->default] ?? [];
- if ($smtpEnabled && !empty($customTemplate)) {
- $body = Template::fromString($customTemplate['message'] ?? '');
- $subject = $customTemplate['subject'] ?? $subject;
- $from = $customTemplate['senderName'] ?? $from;
- $senderEmail = $customTemplate['senderEmail'] ?? '';
- $senderEmail = $senderEmail ?: ($smtp['senderEmail'] ?? '');
- $senderEmail = $senderEmail ?: App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
+ $message = Template::fromFile(__DIR__ . '/../../config/locale/templates/email-inner-base.tpl');
+ $message->setParam('{{body}}', $body);
+ $body = $message->render();
- $senderName = $customTemplate['senderName'] ?? '';
- $senderName = $senderName ?: ($smtp['senderName'] ?? '');
- $senderName = $senderName ?: App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
+ $smtp = $project->getAttribute('smtp', []);
+ $smtpEnabled = $smtp['enabled'] ?? false;
- $replyTo = $customTemplate['replyTo'] ?? '';
- $replyTo = $replyTo ?: ($smtp['replyTo'] ?? '');
- $replyTo = $senderEmail;
+ $senderEmail = App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM);
+ $senderName = App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server');
+ $replyTo = "";
+
+ if ($smtpEnabled) {
+ if (!empty($smtp['senderEmail'])) {
+ $senderEmail = $smtp['senderEmail'];
+ }
+ if (!empty($smtp['senderName'])) {
+ $senderName = $smtp['senderName'];
+ }
+ if (!empty($smtp['replyTo'])) {
+ $replyTo = $smtp['replyTo'];
+ }
- $smtp = $project->getAttribute('smtp', []);
$mails
->setSmtpHost($smtp['host'] ?? '')
->setSmtpPort($smtp['port'] ?? '')
->setSmtpUsername($smtp['username'] ?? '')
->setSmtpPassword($smtp['password'] ?? '')
- ->setSmtpSecure($smtp['secure'] ?? '')
- ->setSmtpReplyTo($replyTo)
- ->setSmtpSenderEmail($senderEmail)
- ->setSmtpSenderName($senderName);
- } else {
- $message = Template::fromFile(__DIR__ . '/../../config/locale/templates/email-inner-base.tpl');
- $message->setParam('{{body}}', $body);
- $body = $message->render();
-
- $mails
- ->setSmtpReplyTo(App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM))
- ->setSmtpSenderEmail(App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', APP_EMAIL_TEAM))
- ->setSmtpSenderName(App::getEnv('_APP_SYSTEM_EMAIL_NAME', APP_NAME . ' Server'));
+ ->setSmtpSecure($smtp['secure'] ?? '');
}
+ if (!empty($customTemplate)) {
+ if (!empty($customTemplate['senderEmail'])) {
+ $senderEmail = $customTemplate['senderEmail'];
+ }
+ if (!empty($customTemplate['senderName'])) {
+ $senderName = $customTemplate['senderName'];
+ }
+ if (!empty($customTemplate['replyTo'])) {
+ $replyTo = $customTemplate['replyTo'];
+ }
+
+ $body = $customTemplate['message'] ?? '';
+ $subject = $customTemplate['subject'] ?? $subject;
+ }
+
+ $mails
+ ->setSmtpReplyTo($replyTo)
+ ->setSmtpSenderEmail($senderEmail)
+ ->setSmtpSenderName($senderName);
+
$emailVariables = [
'owner' => $user->getAttribute('name'),
'team' => $team->getAttribute('name'),
@@ -608,7 +618,6 @@ App::post('/v1/teams/:teamId/memberships')
$mails
->setSubject($subject)
->setBody($body)
- ->setFrom($from)
->setRecipient($invitee->getAttribute('email'))
->setName($invitee->getAttribute('name'))
->setVariables($emailVariables)
diff --git a/app/workers/mails.php b/app/workers/mails.php
index 649d44742..5fd20d259 100644
--- a/app/workers/mails.php
+++ b/app/workers/mails.php
@@ -38,7 +38,6 @@ class MailsV1 extends Worker
$name = $this->args['name'];
$body = $this->args['body'];
$variables = $this->args['variables'];
- $from = $this->args['from'];
$body = Template::fromFile(__DIR__ . '/../config/locale/templates/email-base.tpl');
diff --git a/src/Appwrite/Event/Mail.php b/src/Appwrite/Event/Mail.php
index 477d54d57..e1c015fb2 100644
--- a/src/Appwrite/Event/Mail.php
+++ b/src/Appwrite/Event/Mail.php
@@ -8,7 +8,6 @@ use Utopia\Database\Document;
class Mail extends Event
{
protected string $recipient = '';
- protected string $from = '';
protected string $name = '';
protected string $subject = '';
protected string $body = '';
@@ -66,29 +65,6 @@ class Mail extends Event
return $this->recipient;
}
- /**
- * Sets from for the mail event.
- *
- * @param string $from
- * @return self
- */
- public function setFrom(string $from): self
- {
- $this->from = $from;
-
- return $this;
- }
-
- /**
- * Returns from for mail event.
- *
- * @return string
- */
- public function getFrom(): string
- {
- return $this->from;
- }
-
/**
* Sets body for the mail event.
*
@@ -342,7 +318,6 @@ class Mail extends Event
public function trigger(): string|bool
{
return Resque::enqueue($this->queue, $this->class, [
- 'from' => $this->from,
'recipient' => $this->recipient,
'name' => $this->name,
'subject' => $this->subject,
|