在direct_mail简报中使用tt_address字段

时间:2015-04-13 18:46:30

标签: typo3 typo3-6.2.x

我正在使用TYPO3 6.2.11tt_address 2.3.5direct_mail 4.0.1,并从内部TYPO3页面向我发送了一些测试新闻简报。一切正常。

现在,我想从我的tt_address - 表格中发送一些数据字段,例如nametitle

tt_address-MARKER的名称是什么,我将在我的页面内容中使用?

我还在direct_mail-Extension中添加了以下[basic.addRecipFields]

name,first_name,last_name,email,description,title

但没有任何反应。我无法在我的direct_mail简报中使用tt_address-fields。我希望有人可以帮助我,谢谢。


另一个机会是使用fe_user - 我的简报数据(felogin)。如何在我的模板中使用passwordusername之类的felogin字段?

1 个答案:

答案 0 :(得分:3)

您需要在字段前添加USER_前缀,并将标记包装在###中。所以例如如果您想使用电子邮件地址,请编写###USER_email###。您可以在Direct Mail documentation中找到所有可能性。

关于发送密码的说明:这将是一个巨大的安全风险,但无论如何都不可能,因为fe_users的密码至少存储在数据库中(现在也是加密的)。但您可以使用###SYS_AUTHCODE###标记生成可在“编辑个人资料”扩展程序中使用的身份验证代码,以便用户更新其订阅。

如果您需要动态计算其他来源或数据的字段,您还可以创建自己的扩展并实现Direct Mail mailMarkersHook。

<强> ext_localconf.php:

// Direct Mail personalization hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/direct_mail']['res/scripts/class.dmailer.php']['mailMarkersHook']['userunilunewsletterrendering'] =
    'My\Extension\Hook\DirectMail->mailMarkersHook';

<强> EXT:扩展/类别/钩/ DirectMail.php:

<?php
namespace My\Extension\Hook;

class DirectMail {

    public function mailMarkersHook($params, \DirectMailTeam\DirectMail\Dmailer $dmailer) {
        $params['markers']['###USER_SALUTATION###'] = $this->getPersonalizedSalutation($params['row']);
        return $params;
    }

    /**
     * @param $row
     * @return string
     */
    protected function getPersonalizedSalutation($row) {
        $personalizedSalutation = 'Dear Sir or Madam';
        if (!empty($row['last_name']) && !empty($row['gender'])) {
            if ($row['gender'] === 'm') {
                $personalizedSalutation = 'Dear Mr. ' . $row['last_name'];
            } elseif ($row['gender'] === 'f') {
                $personalizedSalutation = 'Dear Ms. ' . $row['last_name'];
            }
        }
        return $personalizedSalutation;
    }

}