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/lib/pkp b/lib/pkp index ac56c9f..89cb7d7 160000 --- a/lib/pkp +++ b/lib/pkp @@ -1 +1 @@ -Subproject commit ac56c9fcefb3aeff16918b03c41d196a9f19cee4 +Subproject commit 89cb7d7c66bd5f8e54204b092fdc36c4f7b417aa-dirty 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/duracloud/lib/DuraCloud-PHP b/plugins/importexport/duracloud/lib/DuraCloud-PHP --- a/plugins/importexport/duracloud/lib/DuraCloud-PHP +++ b/plugins/importexport/duracloud/lib/DuraCloud-PHP @@ -1 +1 @@ -Subproject commit 31a1192887b7ff70a058ead1353f49be7246dccf +Subproject commit 31a1192887b7ff70a058ead1353f49be7246dccf-dirty 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"}

+ + + + + diff --git a/templates/rt/email.tpl b/templates/rt/email.tpl index 65c1670..a788ee6 100644 --- a/templates/rt/email.tpl +++ b/templates/rt/email.tpl @@ -145,10 +145,6 @@ function deleteAttachment(fileId) { - - - - diff --git a/templates/subscription/openAccessNotifyEmail.tpl b/templates/subscription/openAccessNotifyEmail.tpl index 59ac89a..ae29134 100644 --- a/templates/subscription/openAccessNotifyEmail.tpl +++ b/templates/subscription/openAccessNotifyEmail.tpl @@ -4,6 +4,7 @@ Content-Type: text/plain; charset={$defaultCharset|escape} Content-Transfer-Encoding: quoted-printable +{literal}{$templateHeader}{/literal} {$body} {$issue->getIssueIdentification()} @@ -42,6 +43,8 @@ Content-Transfer-Encoding: quoted-printable +
{literal}{$templateHeader}{/literal}
+

{$body|escape|nl2br}

{$issue->getIssueIdentification()}
{translate key="issue.toc"}

{translate key="manager.setup.emailHeaderDescription"}
 
{fieldLabel name="emailHeader" key="manager.setup.emailHeader"} + +
{translate key="manager.setup.emailSignatureDescription"}
 
{fieldLabel name="emailSignature" key="manager.setup.emailSignature"} 
{translate key="email.from"}{$from|escape}
{fieldLabel name="subject" key="email.subject"}