Merge pull request #4379 from nextcloud/nicely-designed-confirmation-mail

Beautify test email
This commit is contained in:
Morris Jobke 2017-04-18 17:17:40 -05:00 committed by GitHub
commit 4b2d594c70
2 changed files with 18 additions and 4 deletions

View file

@ -145,11 +145,19 @@ class MailSettingsController extends Controller {
$email = $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'email', '');
if (!empty($email)) {
try {
$displayName = $this->userSession->getUser()->getDisplayName();
$template = $this->mailer->createEMailTemplate();
$template->addHeader();
$template->addHeading($this->l10n->t('Well done, %s!', [$displayName]));
$template->addBodyText($this->l10n->t('If you received this email, the email configuration seems to be correct.'));
$template->addFooter();
$message = $this->mailer->createMessage();
$message->setTo([$email => $this->userSession->getUser()->getDisplayName()]);
$message->setFrom([$this->defaultMailAddress]);
$message->setSubject($this->l10n->t('test email settings'));
$message->setPlainBody('If you received this email, the settings seem to be correct.');
$message->setTo([$email => $displayName]);
$message->setSubject($this->l10n->t('Email setting test'));
$message->setHtmlBody($template->renderHTML());
$message->setPlainBody($template->renderText());
$errors = $this->mailer->send($message);
if (!empty($errors)) {
throw new \RuntimeException($this->l10n->t('Mail could not be sent. Check your mail server log'));

View file

@ -20,6 +20,7 @@ use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
use OCP\IUserSession;
use OCP\Mail\IEMailTemplate;
use OCP\Mail\IMailer;
use OC\User\User;
@ -161,6 +162,11 @@ class MailSettingsControllerTest extends \Test\TestCase {
$this->mailer->expects($this->once())
->method('createMessage')
->willReturn($this->createMock(Message::class));
$emailTemplate = $this->createMock(IEMailTemplate::class);
$this->mailer
->expects($this->once())
->method('createEMailTemplate')
->willReturn($emailTemplate);
$response = $this->mailController->sendTestMail();
$this->assertSame(Http::STATUS_OK, $response->getStatus(), $response->getData());
}