$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'));
use OCP\IL10N;
use OCP\IRequest;
use OCP\IUserSession;
+use OCP\Mail\IEMailTemplate;
use OCP\Mail\IMailer;
use OC\User\User;
$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());
}