typo3 - TYPO3 10.4.20:使用不同的模板文件发送电子邮件不起作用
问题描述
我的 TYPO3 自定义扩展上有 2 个表格。总共有3个模板文件。
请看我的代码,你能帮我指出它有什么问题吗?
现在,当我单击提交按钮时出现以下错误:
// Set user email template
if(!empty($arguments['requestform'])) {
$setTemplateAdmin = $this->setTemplateAdmin();
$setTemplateUser = $this->setTemplateUser();
}else{
$setTemplateFreeTrialAdmin = $this->setTemplateFreeTrialAdmin();
}
exit;
//subject request Admin Template
public function setTemplateAdmin(){
$this->view->setTemplatePathAndFilename(ExtensionManagementUtility::extPath('my_extension').
'Resources/Private/Templates/my_extension/AdminEmail.html');
$this->view->assignMultiple([
'mailOutput' => $userData,
'settings' => $this->settings,
'baseurl' => $GLOBALS['TSFE']->config['config']['baseURL']
]);
$mailBody = $this->view->render();
$mailSent = $this->sendEmail($mailBody, $userData['email'], $this->settings, $userData['requestform']);
}
//subject request User template
public function setTemplateUser(){
$this->view->setTemplatePathAndFilename(ExtensionManagementUtility::extPath('my_extensionn').
'Resources/Private/Templates/my_extension/RequestSubUserEmail.html');
$this->view->assignMultiple([
'mailOutput' => $userData,
'settings' => $this->settings,
'baseurl' => $GLOBALS['TSFE']->config['config']['baseURL']
]);
$mailBodyUser = $this->view->render();
$mailSent = $this->sendEmailUser($mailBodyUser, $userData['email'], $this->settings, $userData['requestform']);
}
//Trial request user mail
public function setTemplateFreeTrialAdmin(){
$this->view->setTemplatePathAndFilename(ExtensionManagementUtility::extPath('my_extension').
'Resources/Private/Templates/my_extension/UserEmail.html');
$this->view->assignMultiple([
'mailOutput' => $userData,
'settings' => $this->settings,
'baseurl' => $GLOBALS['TSFE']->config['config']['baseURL']
]);
$mailBody = $this->view->render();
$mailSent = $this->sendEmail($mailBody, $userData['email'], $this->settings, $userData['requestform']);
}
// Send Email
public function sendEmail($mailBody, $userEmail, $settings, $requestform)
{
$mail = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Mail\MailMessage::class);
if(!empty($requestform)) {
$mail
->from(new \Symfony\Component\Mime\Address($settings['adminfromemail'], $settings['adminfromname']))
->to(new \Symfony\Component\Mime\Address($settings['admintoemail']))
->subject($settings['subreqmailsubject'])
->html($mailBody)
->send();
} else {
$mail
->from(new \Symfony\Component\Mime\Address($settings['adminfromemail'], $settings['adminfromname']))
->to(new \Symfony\Component\Mime\Address($userEmail))
->subject($settings['adminmailsubject'])
->html($mailBody)
->send();
}
}
// Send User Email for Subject Request Form
public function sendEmailUser($mailBodyUser, $userEmail, $settings, $requestform)
{
$mail = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Mail\MailMessage::class);
$mail
->from(new \Symfony\Component\Mime\Address($settings['adminfromemail'], $settings['adminfromname']))
->to(new \Symfony\Component\Mime\Address($userEmail))
->subject($settings['subrequsermailsubject'])
->html($mailBodyUser)
->send();
}
$userEmail
是值电子邮件字段。我认为它的价值没有得到。
表单未提交它显示 500 错误。
解决方案
$userData
与函数调用一起传递
if(!empty($arguments['requestform'])) {
$setTemplateAdmin = $this->setTemplateAdmin($userData);
$setTemplateUser = $this->setTemplateUser($userData);
}else{
$setTemplateFreeTrialAdmin = $this->setTemplateFreeTrialAdmin($userData);
}
exit;
并在函数定义处声明变量
public function setTemplateAdmin($userData){
//code here
}
推荐阅读
- javascript - 如何检查二维数组中的每个项目的特定条件?
- python - 正则表达式匹配行
- hyperledger-fabric - 链码实例化失败?
- angular - 无法使用 angular6 在 ng-content 中使用 Transclusion
- javascript - 使用 cognito 进行身份验证时,在 IE11 上未定义 Fetch
- json - 试图从结构中获取“变量”,但是当我尝试时说结构没有成员“变量”
- elasticsearch - 在 Elasticsearch for Go 中为 Completion Suggester 传递什么参数?
- java - 为什么在 Android 9.0 中 webview 中的进度条显示有延迟?
- php - 级联删除在虚拟机上不起作用
- oracle - 从表中选择行,其中每一行的另一列中的值相同