TYPO3  7.6
TestTask.php
Go to the documentation of this file.
1 <?php
2 namespace TYPO3\CMS\Scheduler\Example;
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
16 
21 {
27  public $email;
28 
35  public function execute()
36  {
37  $success = false;
38  if (!empty($this->email)) {
39  // If an email address is defined, send a message to it
40  // NOTE: the TYPO3_DLOG constant is not used in this case, as this is a test task
41  // and debugging is its main purpose anyway
42  \TYPO3\CMS\Core\Utility\GeneralUtility::devLog('[TYPO3\\CMS\\Scheduler\\Example\\TestTask]: Test email sent to "' . $this->email . '"', 'scheduler', 0);
43  // Get execution information
44  $exec = $this->getExecution();
45  // Get call method
46  if (basename(PATH_thisScript) == 'cli_dispatch.phpsh') {
47  $calledBy = 'CLI module dispatcher';
48  $site = '-';
49  } else {
50  $calledBy = 'TYPO3 backend';
51  $site = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL');
52  }
53  $start = $exec->getStart();
54  $end = $exec->getEnd();
55  $interval = $exec->getInterval();
56  $multiple = $exec->getMultiple();
57  $cronCmd = $exec->getCronCmd();
58  $mailBody = 'SCHEDULER TEST-TASK' . LF . '- - - - - - - - - - - - - - - -' . LF . 'UID: ' . $this->taskUid . LF . 'Sitename: ' . $GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'] . LF . 'Site: ' . $site . LF . 'Called by: ' . $calledBy . LF . 'tstamp: ' . date('Y-m-d H:i:s') . ' [' . time() . ']' . LF . 'maxLifetime: ' . $this->scheduler->extConf['maxLifetime'] . LF . 'start: ' . date('Y-m-d H:i:s', $start) . ' [' . $start . ']' . LF . 'end: ' . (empty($end) ? '-' : date('Y-m-d H:i:s', $end) . ' [' . $end . ']') . LF . 'interval: ' . $interval . LF . 'multiple: ' . ($multiple ? 'yes' : 'no') . LF . 'cronCmd: ' . ($cronCmd ? $cronCmd : 'not used');
59  // Prepare mailer and send the mail
60  try {
62  $mailer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Mail\MailMessage::class);
63  $mailer->setFrom(array($this->email => 'SCHEDULER TEST-TASK'));
64  $mailer->setReplyTo(array($this->email => 'SCHEDULER TEST-TASK'));
65  $mailer->setSubject('SCHEDULER TEST-TASK');
66  $mailer->setBody($mailBody);
67  $mailer->setTo($this->email);
68  $mailsSend = $mailer->send();
69  $success = $mailsSend > 0;
70  } catch (\Exception $e) {
71  throw new \TYPO3\CMS\Core\Exception($e->getMessage());
72  }
73  } else {
74  // No email defined, just log the task
75  \TYPO3\CMS\Core\Utility\GeneralUtility::devLog('[TYPO3\\CMS\\Scheduler\\Example\\TestTask]: No email address given', 'scheduler', 2);
76  }
77  return $success;
78  }
79 
85  public function getAdditionalInformation()
86  {
87  return $GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.email') . ': ' . $this->email;
88  }
89 }