Home > Back-end >  How can i send Mails within my Typo3 extension
How can i send Mails within my Typo3 extension

Time:03-06

I get results from a jQuery Survey in JSON within my Typo3 Extension. Now I want to send these results with the Typo3 Mail API to my Inbox. According to the documentations following shoud do the work

$mail = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Mail\MailMessage::class);
$mail->from(new \Symfony\Component\Mime\Address('[email protected]', 'John Doe'));
$mail->to(
   new \Symfony\Component\Mime\Address('[email protected]', 'Max Mustermann'),
   new \Symfony\Component\Mime\Address('[email protected]')
);
$mail->subject('Your subject');
$mail->text('Here is the message itself');
$mail->html('<p>Here is the message itself</p>');
$mail->attachFromPath('/path/to/my-document.pdf');
$mail->send();

so my code looks like this:

namespace TYPO3\CMS\Core\Mail;
 
  if (!file_exists( dirname(__DIR__, 2).'/vendor/autoload.php' )) {
    throw new \RuntimeException(
    'Could not find vendor/autoload.php, make sure you ran composer.'
          );
     } else {
        require dirname(__DIR__, 2).'/vendor/autoload.php';
  }


use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Utility\MailUtility;


$mail = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Mail\MailMessage::class);
$mail->from(new \Symfony\Component\Mime\Address('[email protected]', 'John Doe'));
$mail->to(
   new \Symfony\Component\Mime\Address('[email protected]', 'Max Mustermann'),
   new \Symfony\Component\Mime\Address('[email protected]')
);
$mail->subject('Your subject');
$mail->text('Here is the message itself');
$mail->html('<p>Here is the message itself</p>');
$mail->attachFromPath('/path/to/my-document.pdf');
$mail->send();

I just getting errors. Does anyone know how i can achieve this?

Following error i get

Notice: Undefined index: TYPO3_CONF_VARS in /var/www/html/local_packages/ext_sitepackage/public/typo3/sysext/core/Classes/Mail/Mailer.php on line 170

CodePudding user response:

Apparently this is the same question as you already posted here.

This will never work like this. You need to either build a fully fledged TYPO3 extension or a standalone application using symfony/mailer directly.

CodePudding user response:

Your script is missing $GLOBALS['TYPO3_CONF_VARS']['MAIL'].

You stumble over the fact that you're programming past the conventions and requirements of TYPO3, but then you're surprised that the framework's functions don't work...

  • Related