diff --git a/classes/controllers/grid/citation/PKPCitationGridHandler.inc.php b/classes/controllers/grid/citation/PKPCitationGridHandler.inc.php
index 5437eba..beed868 100644
--- a/classes/controllers/grid/citation/PKPCitationGridHandler.inc.php
+++ b/classes/controllers/grid/citation/PKPCitationGridHandler.inc.php
@@ -486,10 +486,6 @@ class PKPCitationGridHandler extends GridHandler {
import('lib.pkp.classes.mail.Mail');
$mail = new Mail();
- // Sender
- $user =& $request->getUser();
- $mail->setFrom($user->getEmail(), $user->getFullName());
-
// Recipient
$assocObject =& $this->getAssocObject();
$author =& $assocObject->getUser();
diff --git a/lib/pkp/classes/mail/Mail.inc.php b/lib/pkp/classes/mail/Mail.inc.php
index 19cff1f..5dd83c0 100644
--- a/lib/pkp/classes/mail/Mail.inc.php
+++ b/lib/pkp/classes/mail/Mail.inc.php
@@ -324,6 +324,37 @@ class Mail extends DataObject {
}
/**
+ * Set the reply-to of the message.
+ * @param $email string or null to clear
+ * @param $name string optional
+ */
+ function setReplyTo($email, $name = '') {
+ if ($email === null) $this->setData('replyTo', null);
+ return $this->setData('replyTo', array('name' => $name, 'email' => $email));
+ }
+
+ /**
+ * Get the reply-to of the message.
+ * @return array
+ */
+ function getReplyTo() {
+ return $this->getData('replyTo');
+ }
+
+ /**
+ * Return a string containing the reply-to address.
+ * @return string
+ */
+ function getReplyToString($send = false) {
+ $replyTo = $this->getReplyTo();
+ if ($replyTo == null) {
+ return null;
+ } else {
+ return (Mail::encodeDisplayName($replyTo['name'], $send) . ' <'.$replyTo['email'].'>');
+ }
+ }
+
+ /**
* Set the subject of the message.
* @param $subject string
*/
@@ -468,6 +499,10 @@ class Mail extends DataObject {
$this->addHeader('From', $from);
}
+ if (($r = $this->getReplyToString()) != '') {
+ $this->addHeader('Reply-To', $r);
+ }
+
$ccs = $this->getAddressArrayString($this->getCcs(), true, true);
if ($ccs != null) {
$this->addHeader('Cc', $ccs);
@@ -552,6 +587,7 @@ class Mail extends DataObject {
/**
* Encode a display name for proper inclusion with an email address.
* @param $displayName string
+ * @param $send boolean True to encode the results for sending
* @return string
*/
function encodeDisplayName($displayName, $send = false) {
diff --git a/lib/pkp/classes/notification/PKPNotificationManager.inc.php b/lib/pkp/classes/notification/PKPNotificationManager.inc.php
index 892bc38..707b117 100644
--- a/lib/pkp/classes/notification/PKPNotificationManager.inc.php
+++ b/lib/pkp/classes/notification/PKPNotificationManager.inc.php
@@ -445,7 +445,7 @@ class PKPNotificationManager {
import('classes.mail.MailTemplate');
$site =& $request->getSite();
$mail = new MailTemplate('NOTIFICATION', null, null, null, true, true);
- $mail->setFrom($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
+ $mail->setReplyTo($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
$mail->assignParams(array(
'notificationContents' => $this->getNotificationContents($request, $notification),
'url' => $this->getNotificationUrl($request, $notification),
@@ -473,7 +473,7 @@ class PKPNotificationManager {
$dispatcher =& $router->getDispatcher();
$mail = new MailTemplate('NOTIFICATION_MAILLIST');
- $mail->setFrom($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
+ $mail->setReplyTo($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
$mail->assignParams(array(
'notificationContents' => $this->getNotificationContents($request, $notification),
'url' => $this->getNotificationUrl($request, $notification),
@@ -512,7 +512,7 @@ class PKPNotificationManager {
}
$mail = new MailTemplate($template);
- $mail->setFrom($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
+ $mail->setReplyTo($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
$mail->assignParams($params);
$mail->addRecipient($email);
$mail->send();
diff --git a/lib/pkp/templates/email/email.tpl b/lib/pkp/templates/email/email.tpl
index 52e7c78..06be0c7 100644
--- a/lib/pkp/templates/email/email.tpl
+++ b/lib/pkp/templates/email/email.tpl
@@ -145,10 +145,6 @@ function deleteAttachment(fileId) {
|
- | {translate key="email.from"} |
- {$from|escape} |
-
-
| {fieldLabel name="subject" key="email.subject"} |
|
diff --git a/classes/author/form/submit/AuthorSubmitStep5Form.inc.php b/classes/author/form/submit/AuthorSubmitStep5Form.inc.php
index 58399a8..2264ff9 100644
--- a/classes/author/form/submit/AuthorSubmitStep5Form.inc.php
+++ b/classes/author/form/submit/AuthorSubmitStep5Form.inc.php
@@ -176,7 +176,7 @@ class AuthorSubmitStep5Form extends AuthorSubmitForm {
// Send author notification email
import('classes.mail.ArticleMailTemplate');
$mail = new ArticleMailTemplate($article, 'SUBMISSION_ACK', null, null, null, false);
- $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $mail->setReplyTo(null);
if ($mail->isEnabled()) {
$mail->addRecipient($user->getEmail(), $user->getFullName());
// If necessary, BCC the acknowledgement to someone.
diff --git a/classes/mail/MailTemplate.inc.php b/classes/mail/MailTemplate.inc.php
index 588c64b..52177be 100644
--- a/classes/mail/MailTemplate.inc.php
+++ b/classes/mail/MailTemplate.inc.php
@@ -86,8 +86,9 @@ class MailTemplate extends PKPMailTemplate {
// Default "From" to user if available, otherwise site/journal principal contact
$user =& Request::getUser();
if ($user) {
- $this->setFrom($user->getEmail(), $user->getFullName());
- } elseif (is_null($journal) || is_null($journal->getSetting('contactEmail'))) {
+ $this->setReplyTo($user->getEmail(), $user->getFullName());
+ }
+ if (is_null($journal) || is_null($journal->getSetting('contactEmail'))) {
$site =& Request::getSite();
$this->setFrom($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
@@ -143,16 +144,24 @@ class MailTemplate extends PKPMailTemplate {
*/
function send($clearAttachments = true) {
if (isset($this->journal)) {
- //If {$templateSignature} exists in the body of the
- // message, replace it with the journal signature;
- // otherwise just append it. This is here to
- // accomodate MIME-encoded messages or other cases
- // where the signature cannot just be appended.
- $searchString = '{$templateSignature}';
- if (strstr($this->getBody(), $searchString) === false) {
- $this->setBody($this->getBody() . "\n" . $this->journal->getSetting('emailSignature'));
+ //If {$templateSignature} and/or {$templateHeader}
+ // exist in the body of the message, replace them with
+ // the journal signature; otherwise just pre/append
+ // them. This is here to accomodate MIME-encoded
+ // messages or other cases where the signature cannot
+ // just be appended.
+ $header = $this->journal->getSetting('emailHeader');
+ if (strstr($this->getBody(), '{$templateHeader}') === false) {
+ $this->setBody($header . "\n" . $this->getBody());
+ } else {
+ $this->setBody(str_replace('{$templateHeader}', $header, $this->getBody()));
+ }
+
+ $signature = $this->journal->getSetting('emailSignature');
+ if (strstr($this->getBody(), '{$templateSignature}') === false) {
+ $this->setBody($this->getBody() . "\n" . $signature);
} else {
- $this->setBody(str_replace($searchString, $this->journal->getSetting('emailSignature'), $this->getBody()));
+ $this->setBody(str_replace('{$templateSignature}', $signature, $this->getBody()));
}
$envelopeSender = $this->journal->getSetting('envelopeSender');
diff --git a/classes/manager/form/UserManagementForm.inc.php b/classes/manager/form/UserManagementForm.inc.php
index 97e5c52..3cbe0f5 100644
--- a/classes/manager/form/UserManagementForm.inc.php
+++ b/classes/manager/form/UserManagementForm.inc.php
@@ -353,7 +353,7 @@ class UserManagementForm extends Form {
// Send welcome email to user
import('classes.mail.MailTemplate');
$mail = new MailTemplate('USER_REGISTER');
- $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $mail->setReplyTo(null);
$mail->assignParams(array('username' => $this->getData('username'), 'password' => $password, 'userFullName' => $user->getFullName()));
$mail->addRecipient($user->getEmail(), $user->getFullName());
$mail->send();
diff --git a/classes/manager/form/setup/JournalSetupStep1Form.inc.php b/classes/manager/form/setup/JournalSetupStep1Form.inc.php
index d581663..dc85c0d 100644
--- a/classes/manager/form/setup/JournalSetupStep1Form.inc.php
+++ b/classes/manager/form/setup/JournalSetupStep1Form.inc.php
@@ -49,6 +49,7 @@ class JournalSetupStep1Form extends JournalSetupForm {
'contributors' => 'object',
'history' => 'string',
'envelopeSender' => 'string',
+ 'emailHeader' => 'string',
'emailSignature' => 'string',
'searchDescription' => 'string',
'searchKeywords' => 'string',
diff --git a/classes/payment/ojs/OJSPaymentManager.inc.php b/classes/payment/ojs/OJSPaymentManager.inc.php
index fc8ee87..7233c60 100644
--- a/classes/payment/ojs/OJSPaymentManager.inc.php
+++ b/classes/payment/ojs/OJSPaymentManager.inc.php
@@ -426,7 +426,7 @@ class OJSPaymentManager extends PaymentManager {
import('classes.mail.MailTemplate');
$mail = new MailTemplate('GIFT_AVAILABLE', $giftLocale);
- $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $mail->setReplyTo(null);
$mail->assignParams(array(
'giftJournalName' => $giftJournalName,
'giftNoteTitle' => $giftNoteTitle,
@@ -459,7 +459,7 @@ class OJSPaymentManager extends PaymentManager {
$mail = new MailTemplate('GIFT_USER_LOGIN', $giftLocale);
}
- $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $mail->setReplyTo(null);
$mail->assignParams($params);
$mail->addRecipient($recipientEmail, $user->getFullName());
$mail->send();
diff --git a/classes/sectionEditor/form/CreateReviewerForm.inc.php b/classes/sectionEditor/form/CreateReviewerForm.inc.php
index b8d7c6f..6f3b883 100644
--- a/classes/sectionEditor/form/CreateReviewerForm.inc.php
+++ b/classes/sectionEditor/form/CreateReviewerForm.inc.php
@@ -193,7 +193,7 @@ class CreateReviewerForm extends Form {
// Send welcome email to user
import('classes.mail.MailTemplate');
$mail = new MailTemplate('REVIEWER_REGISTER');
- $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $mail->setReplyTo(null);
$mail->assignParams(array('username' => $this->getData('username'), 'password' => $password, 'userFullName' => $user->getFullName()));
$mail->addRecipient($user->getEmail(), $user->getFullName());
$mail->send();
diff --git a/classes/submission/form/comment/CommentForm.inc.php b/classes/submission/form/comment/CommentForm.inc.php
index 9297ca8..c7c2ff6 100644
--- a/classes/submission/form/comment/CommentForm.inc.php
+++ b/classes/submission/form/comment/CommentForm.inc.php
@@ -129,7 +129,7 @@ class CommentForm extends Form {
import('classes.mail.ArticleMailTemplate');
$email = new ArticleMailTemplate($article, 'SUBMISSION_COMMENT');
- $email->setFrom($this->user->getEmail(), $this->user->getFullName());
+ $email->setReplyTo($this->user->getEmail(), $this->user->getFullName());
$commentText = $this->getData('comments');
diff --git a/classes/submission/form/comment/EditCommentForm.inc.php b/classes/submission/form/comment/EditCommentForm.inc.php
index a737b43..bc32d77 100644
--- a/classes/submission/form/comment/EditCommentForm.inc.php
+++ b/classes/submission/form/comment/EditCommentForm.inc.php
@@ -292,7 +292,7 @@ class EditCommentForm extends Form {
import('classes.mail.ArticleMailTemplate');
$email = new ArticleMailTemplate($this->article, 'SUBMISSION_COMMENT');
$journal =& $request->getJournal();
- if ($journal) $email->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $email->setReplyTo(null);
foreach ($recipients as $emailAddress => $name) {
$email->addRecipient($emailAddress, $name);
diff --git a/classes/submission/reviewer/ReviewerAction.inc.php b/classes/submission/reviewer/ReviewerAction.inc.php
index caf778d..e9d244a 100644
--- a/classes/submission/reviewer/ReviewerAction.inc.php
+++ b/classes/submission/reviewer/ReviewerAction.inc.php
@@ -51,7 +51,7 @@ class ReviewerAction extends Action {
$email = new ArticleMailTemplate($reviewerSubmission, $decline?'REVIEW_DECLINE':'REVIEW_CONFIRM');
// Must explicitly set sender because we may be here on an access
// key, in which case the user is not technically logged in
- $email->setFrom($reviewer->getEmail(), $reviewer->getFullName());
+ $email->setReplyTo($reviewer->getEmail(), $reviewer->getFullName());
if (!$email->isEnabled() || ($send && !$email->hasErrors())) {
HookRegistry::call('ReviewerAction::confirmReview', array(&$reviewerSubmission, &$email, $decline));
if ($email->isEnabled()) {
@@ -131,7 +131,7 @@ class ReviewerAction extends Action {
$email = new ArticleMailTemplate($reviewerSubmission, 'REVIEW_COMPLETE');
// Must explicitly set sender because we may be here on an access
// key, in which case the user is not technically logged in
- $email->setFrom($reviewer->getEmail(), $reviewer->getFullName());
+ $email->setReplyTo($reviewer->getEmail(), $reviewer->getFullName());
if (!$email->isEnabled() || ($send && !$email->hasErrors())) {
HookRegistry::call('ReviewerAction::recordRecommendation', array(&$reviewerSubmission, &$email, $recommendation));
diff --git a/classes/subscription/SubscriptionAction.inc.php b/classes/subscription/SubscriptionAction.inc.php
index b92012b..80a933a 100644
--- a/classes/subscription/SubscriptionAction.inc.php
+++ b/classes/subscription/SubscriptionAction.inc.php
@@ -647,7 +647,7 @@ class SubscriptionAction {
import('classes.mail.MailTemplate');
$mail = new MailTemplate($mailTemplateKey);
- $mail->setFrom($subscriptionContactEmail, $subscriptionContactName);
+ $mail->setReplyTo($subscriptionContactEmail, $subscriptionContactName);
$mail->addRecipient($subscriptionContactEmail, $subscriptionContactName);
$mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
$mail->setBody($mail->getBody($journal->getPrimaryLocale()));
diff --git a/classes/subscription/form/SubscriptionForm.inc.php b/classes/subscription/form/SubscriptionForm.inc.php
index 307b5e6..6229500 100644
--- a/classes/subscription/form/SubscriptionForm.inc.php
+++ b/classes/subscription/form/SubscriptionForm.inc.php
@@ -297,7 +297,7 @@ class SubscriptionForm extends Form {
import('classes.mail.MailTemplate');
$mail = new MailTemplate($mailTemplateKey);
- $mail->setFrom($subscriptionEmail, $subscriptionName);
+ $mail->setReplyTo($subscriptionEmail, $subscriptionName);
$mail->addRecipient($user->getEmail(), $user->getFullName());
$mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
$mail->setBody($mail->getBody($journal->getPrimaryLocale()));
diff --git a/classes/tasks/OpenAccessNotification.inc.php b/classes/tasks/OpenAccessNotification.inc.php
index f89ed1c..055e7d5 100644
--- a/classes/tasks/OpenAccessNotification.inc.php
+++ b/classes/tasks/OpenAccessNotification.inc.php
@@ -34,7 +34,7 @@ class OpenAccessNotification extends ScheduledTask {
$email = new MailTemplate('OPEN_ACCESS_NOTIFY', $journal->getPrimaryLocale());
$email->setSubject($email->getSubject($journal->getPrimaryLocale()));
- $email->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $email->setReplyTo(null);
$email->addRecipient($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
$paramArray = array(
diff --git a/classes/tasks/ReviewReminder.inc.php b/classes/tasks/ReviewReminder.inc.php
index 0da5e1d..72c4ff9 100644
--- a/classes/tasks/ReviewReminder.inc.php
+++ b/classes/tasks/ReviewReminder.inc.php
@@ -37,7 +37,7 @@ class ReviewReminder extends ScheduledTask {
$email = new ArticleMailTemplate($article, $reviewerAccessKeysEnabled?'REVIEW_REMIND_AUTO_ONECLICK':'REVIEW_REMIND_AUTO', $journal->getPrimaryLocale(), false, $journal);
$email->setJournal($journal);
- $email->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $email->setReplyTo(null);
$email->addRecipient($reviewer->getEmail(), $reviewer->getFullName());
$email->setSubject($email->getSubject($journal->getPrimaryLocale()));
$email->setBody($email->getBody($journal->getPrimaryLocale()));
diff --git a/classes/tasks/SubscriptionExpiryReminder.inc.php b/classes/tasks/SubscriptionExpiryReminder.inc.php
index 085136f..965d219 100644
--- a/classes/tasks/SubscriptionExpiryReminder.inc.php
+++ b/classes/tasks/SubscriptionExpiryReminder.inc.php
@@ -68,7 +68,7 @@ class SubscriptionExpiryReminder extends ScheduledTask {
import('classes.mail.MailTemplate');
$mail = new MailTemplate($emailKey, $journal->getPrimaryLocale());
- $mail->setFrom($subscriptionEmail, $subscriptionName);
+ $mail->setReplyTo($subscriptionEmail, $subscriptionName);
$mail->addRecipient($user->getEmail(), $user->getFullName());
$mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
$mail->setBody($mail->getBody($journal->getPrimaryLocale()));
diff --git a/classes/user/form/RegistrationForm.inc.php b/classes/user/form/RegistrationForm.inc.php
index 73aec6a..0a57267 100644
--- a/classes/user/form/RegistrationForm.inc.php
+++ b/classes/user/form/RegistrationForm.inc.php
@@ -332,7 +332,7 @@ class RegistrationForm extends Form {
// Send email validation request to user
$mail = new MailTemplate('USER_VALIDATE');
- $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $mail->setReplyTo(null);
$mail->assignParams(array(
'userFullName' => $user->getFullName(),
'activateUrl' => Request::url($journal->getPath(), 'user', 'activateUser', array($this->getData('username'), $accessKey))
@@ -344,7 +344,7 @@ class RegistrationForm extends Form {
if ($this->getData('sendPassword')) {
// Send welcome email to user
$mail = new MailTemplate('USER_REGISTER');
- $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $mail->setReplyTo(null);
$mail->assignParams(array(
'username' => $this->getData('username'),
'password' => String::substr($this->getData('password'), 0, 30), // Prevent mailer abuse via long passwords
diff --git a/locale/en_US/default.xml b/locale/en_US/default.xml
index ccf8a1e..963845c 100644
--- a/locale/en_US/default.xml
+++ b/locale/en_US/default.xml
@@ -129,6 +129,8 @@ Please follow the following protocol for making electronic revisions to your man
4. FORMATTING
The paragraph that begins "This last topic..." is not indented.
]]>
+ The following message is being delivered on behalf of {$journalName}.
+________________________________________________________________________
________________________________________________________________________
{$journalName}
{$indexUrl}/{$journalPath}
diff --git a/locale/en_US/manager.xml b/locale/en_US/manager.xml
index 167c603..72608e1 100644
--- a/locale/en_US/manager.xml
+++ b/locale/en_US/manager.xml
@@ -258,6 +258,8 @@
Any undeliverable emails will result in an error message to this address.
Note: To activate this option, the site administrator must enable the allow_envelope_sender option in the OJS configuration file. Additional server configuration may be required to support this functionality (which may not be possible on all servers), as indicated in the OJS documentation.]]>
Email Identification
+ Email Header
+ The prepared emails that are sent by the system on behalf of the journal will begin with the following header. These emails will be addressed from the Principal Contact, so it's important to clarify that the Primary Contact is not necessarily responsible for the message content, which may be sent on behalf of a different user.
Signature
The prepared emails that are sent by the system on behalf of the journal will have the following signature added to the end. The body of the prepared emails are available for editing under Journal Management.
Enable Journal Managers to add journal announcements.
diff --git a/pages/login/LoginHandler.inc.php b/pages/login/LoginHandler.inc.php
index 778dbb8..faaa9af 100644
--- a/pages/login/LoginHandler.inc.php
+++ b/pages/login/LoginHandler.inc.php
@@ -107,9 +107,9 @@ class LoginHandler extends PKPLoginHandler {
// Set the sender based on the current context
if ($journal && $journal->getSetting('supportEmail')) {
- $mail->setFrom($journal->getSetting('supportEmail'), $journal->getSetting('supportName'));
+ $mail->setReplyTo($journal->getSetting('supportEmail'), $journal->getSetting('supportName'));
} else {
- $mail->setFrom($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
+ $mail->setReplyTo($site->getLocalizedContactEmail(), $site->getLocalizedContactName());
}
}
diff --git a/plugins/generic/booksForReview/classes/BooksForReviewReminder.inc.php b/plugins/generic/booksForReview/classes/BooksForReviewReminder.inc.php
index 96d085b..8d249bc 100644
--- a/plugins/generic/booksForReview/classes/BooksForReviewReminder.inc.php
+++ b/plugins/generic/booksForReview/classes/BooksForReviewReminder.inc.php
@@ -40,7 +40,7 @@ class BooksForReviewReminder extends ScheduledTask {
import('classes.mail.MailTemplate');
$mail = new MailTemplate($emailKey);
- $mail->setFrom($book->getEditorEmail(), $book->getEditorFullName());
+ $mail->setReplyTo($book->getEditorEmail(), $book->getEditorFullName());
$mail->addRecipient($book->getUserEmail(), $book->getUserFullName());
$mail->setSubject($mail->getSubject($journal->getPrimaryLocale()));
$mail->setBody($mail->getBody($journal->getPrimaryLocale()));
diff --git a/plugins/generic/booksForReview/pages/BooksForReviewAuthorHandler.inc.php b/plugins/generic/booksForReview/pages/BooksForReviewAuthorHandler.inc.php
index d762953..fb08808 100644
--- a/plugins/generic/booksForReview/pages/BooksForReviewAuthorHandler.inc.php
+++ b/plugins/generic/booksForReview/pages/BooksForReviewAuthorHandler.inc.php
@@ -124,9 +124,6 @@ class BooksForReviewAuthorHandler extends Handler {
$user =& $request->getUser();
$userId = $user->getId();
- $userFullName = $user->getFullName();
- $userEmail = $user->getEmail();
-
$editorFullName = $book->getEditorFullName();
$editorEmail = $book->getEditorEmail();
@@ -137,7 +134,6 @@ class BooksForReviewAuthorHandler extends Handler {
);
$email->addRecipient($editorEmail, $editorFullName);
- $email->setFrom($userEmail, $userFullName);
$email->assignParams($paramArray);
}
$returnUrl = $request->url(null, 'author', 'requestBookForReview', $bookId);
diff --git a/plugins/generic/booksForReview/pages/BooksForReviewEditorHandler.inc.php b/plugins/generic/booksForReview/pages/BooksForReviewEditorHandler.inc.php
index 6a621c7..1efcea0 100644
--- a/plugins/generic/booksForReview/pages/BooksForReviewEditorHandler.inc.php
+++ b/plugins/generic/booksForReview/pages/BooksForReviewEditorHandler.inc.php
@@ -665,7 +665,7 @@ class BooksForReviewEditorHandler extends Handler {
);
$email->addRecipient($userEmail, $userName);
- $email->setFrom($book->getEditorEmail(), $book->getEditorFullName());
+ $email->setReplyTo($book->getEditorEmail(), $book->getEditorFullName());
$email->assignParams($paramArray);
}
$returnUrl = $request->url(null, 'editor', 'assignBookForReviewAuthor', $bookId, array('returnPage' => $returnPage, 'userId' => $userId));
@@ -741,7 +741,7 @@ class BooksForReviewEditorHandler extends Handler {
);
$email->addRecipient($userEmail, $userFullName);
- $email->setFrom($book->getEditorEmail(), $book->getEditorFullName());
+ $email->setReplyTo($book->getEditorEmail(), $book->getEditorFullName());
$email->assignParams($paramArray);
}
$returnUrl = $request->url(null, 'editor', 'denyBookForReviewAuthor', $bookId, array('returnPage' => $returnPage));
@@ -828,7 +828,7 @@ class BooksForReviewEditorHandler extends Handler {
);
$email->addRecipient($userEmail, $userFullName);
- $email->setFrom($book->getEditorEmail(), $book->getEditorFullName());
+ $email->setReplyTo($book->getEditorEmail(), $book->getEditorFullName());
$email->assignParams($paramArray);
}
$returnUrl = $request->url(null, 'editor', 'notifyBookForReviewMailed', $bookId, array('returnPage' => $returnPage));
@@ -908,7 +908,7 @@ class BooksForReviewEditorHandler extends Handler {
);
$email->addRecipient($userEmail, $userFullName);
- $email->setFrom($book->getEditorEmail(), $book->getEditorFullName());
+ $email->setReplyTo($book->getEditorEmail(), $book->getEditorFullName());
$email->assignParams($paramArray);
}
$returnUrl = $request->url(null, 'editor', 'removeBookForReviewAuthor', $bookId, array('returnPage' => $returnPage));
diff --git a/plugins/generic/sword/SwordPlugin.inc.php b/plugins/generic/sword/SwordPlugin.inc.php
index b945e2d..079d09b 100644
--- a/plugins/generic/sword/SwordPlugin.inc.php
+++ b/plugins/generic/sword/SwordPlugin.inc.php
@@ -165,10 +165,8 @@ class SwordPlugin extends GenericPlugin {
$submittingUser =& $sectionEditorSubmission->getUser();
import('classes.mail.ArticleMailTemplate');
- $contactName = $journal->getSetting('contactName');
- $contactEmail = $journal->getSetting('contactEmail');
$mail = new ArticleMailTemplate($sectionEditorSubmission, 'SWORD_DEPOSIT_NOTIFICATION', null, null, $journal, true, true);
- $mail->setFrom($contactEmail, $contactName);
+ $mail->setReplyTo(null);
$mail->addRecipient($submittingUser->getEmail(), $submittingUser->getFullName());
$mail->assignParams(array(
diff --git a/plugins/generic/thesis/StudentThesisForm.inc.php b/plugins/generic/thesis/StudentThesisForm.inc.php
index 02e7a4c..1e35ba7 100644
--- a/plugins/generic/thesis/StudentThesisForm.inc.php
+++ b/plugins/generic/thesis/StudentThesisForm.inc.php
@@ -285,10 +285,10 @@ class StudentThesisForm extends Form {
import('classes.mail.MailTemplate');
$mail = new MailTemplate('THESIS_ABSTRACT_CONFIRM');
- $mail->setFrom($thesisEmail, "\"" . $thesisName . "\"");
+ $mail->setReplyTo($thesisEmail, $thesisName);
$mail->assignParams($paramArray);
- $mail->addRecipient($thesis->getSupervisorEmail(), "\"" . $supervisorName . "\"");
- $mail->addCc($thesis->getStudentEmail(), "\"" . $studentName . "\"");
+ $mail->addRecipient($thesis->getSupervisorEmail(), $supervisorName);
+ $mail->addCc($thesis->getStudentEmail(), $studentName);
$mail->send();
}
diff --git a/plugins/importexport/users/UserXMLParser.inc.php b/plugins/importexport/users/UserXMLParser.inc.php
index e4f7ee1..5e786a8 100644
--- a/plugins/importexport/users/UserXMLParser.inc.php
+++ b/plugins/importexport/users/UserXMLParser.inc.php
@@ -192,7 +192,7 @@ class UserXMLParser {
$journalDao =& DAORegistry::getDAO('JournalDAO');
$journal =& $journalDao->getById($this->journalId);
- $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
+ $mail->setReplyTo($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
}
for ($i=0, $count=count($this->usersToImport); $i < $count; $i++) {
diff --git a/plugins/paymethod/manual/ManualPaymentPlugin.inc.php b/plugins/paymethod/manual/ManualPaymentPlugin.inc.php
index 397c07d..f5dfdaf 100644
--- a/plugins/paymethod/manual/ManualPaymentPlugin.inc.php
+++ b/plugins/paymethod/manual/ManualPaymentPlugin.inc.php
@@ -125,7 +125,7 @@ class ManualPaymentPlugin extends PaymethodPlugin {
$contactName = $journal->getSetting('contactName');
$contactEmail = $journal->getSetting('contactEmail');
$mail = new MailTemplate('MANUAL_PAYMENT_NOTIFICATION');
- $mail->setFrom($contactEmail, $contactName);
+ $mail->setReplyTo(null);
$mail->addRecipient($contactEmail, $contactName);
$mail->assignParams(array(
'journalName' => $journal->getLocalizedTitle(),
diff --git a/plugins/paymethod/paypal/PayPalPlugin.inc.php b/plugins/paymethod/paypal/PayPalPlugin.inc.php
index 4f78b51..16bfe63 100644
--- a/plugins/paymethod/paypal/PayPalPlugin.inc.php
+++ b/plugins/paymethod/paypal/PayPalPlugin.inc.php
@@ -168,7 +168,7 @@ class PayPalPlugin extends PaymethodPlugin {
$contactEmail = $journal->getSetting('contactEmail');
}
$mail = new MailTemplate('PAYPAL_INVESTIGATE_PAYMENT');
- $mail->setFrom($contactEmail, $contactName);
+ $mail->setReplyTo(null);
$mail->addRecipient($contactEmail, $contactName);
$paymentStatus = $request->getUserVar('payment_status');
diff --git a/registry/journalSettings.xml b/registry/journalSettings.xml
index fd0235e..40fa0e2 100644
--- a/registry/journalSettings.xml
+++ b/registry/journalSettings.xml
@@ -51,6 +51,10 @@
{translate key="default.journalSettings.copyeditInstructions"}
+ emailHeader
+ {translate key="default.journalSettings.emailHeader"}
+
+
emailSignature
{translate key="default.journalSettings.emailSignature"}
diff --git a/templates/editor/notifyUsersEmail.tpl b/templates/editor/notifyUsersEmail.tpl
index 8eeb9b3..e36dfa1 100644
--- a/templates/editor/notifyUsersEmail.tpl
+++ b/templates/editor/notifyUsersEmail.tpl
@@ -1,3 +1,5 @@
+{literal}{$templateHeader}{/literal}
+
{$body}
{$journal->getLocalizedTitle()|strip_tags}
@@ -9,6 +11,7 @@
{if $section.title}{$section.title}{/if}
--------
+{literal}{$templateHeader}{/literal}
{foreach from=$section.articles item=article}
{$article->getLocalizedTitle()|strip_tags}{if $article->getPages()} ({$article->getPages()}){/if}
diff --git a/templates/manager/people/email.tpl b/templates/manager/people/email.tpl
index bd03721..fe84546 100644
--- a/templates/manager/people/email.tpl
+++ b/templates/manager/people/email.tpl
@@ -136,10 +136,6 @@ function deleteAttachment(fileId) {
|
- | {translate key="email.from"} |
- {$from|escape} |
-
-
| {fieldLabel name="subject" key="email.subject"} |
|
diff --git a/templates/manager/setup/step1.tpl b/templates/manager/setup/step1.tpl
index 0c5feb6..af78ac8 100644
--- a/templates/manager/setup/step1.tpl
+++ b/templates/manager/setup/step1.tpl
@@ -143,6 +143,13 @@
1.4 {translate key="manager.setup.emails"}