在 direct_mail 个简报中使用 tt_address 个字段

Use tt_address fields in direct_mail newsletter

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

现在,我想从 tt_address-table 发送一些数据字段,例如 nametitle

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

我还在 direct_mail-Extension 处将以下内容添加到 [basic.addRecipFields]

name,first_name,last_name,email,description,title

但是没有任何反应。我无法在我的 direct_mail 时事通讯中使用 tt_address-fields。希望有人能帮帮我,谢谢。


另一个机会是使用 fe_user-data 作为我的时事通讯 (felogin)。我如何在我的模板中使用 passwordusername 之类的 felogin 字段?

您需要在字段前加上 USER_ 前缀,并将标记包裹在 ### 中。所以例如如果您想使用电子邮件地址,请填写 ###USER_email###。您可以在 Direct Mail documentation.

中找到所有可能性

关于发送密码的注意事项:这将是一个巨大的安全风险,但无论如何这是不可能的,因为 fe_users 的密码至少存储在数据库中(现在也加密)。但是您可以使用 ###SYS_AUTHCODE### 标记生成一个验证码,您可以在 "edit profile" 扩展中使用它来让用户更新他的订阅。

如果您需要来自其他来源的字段或您正在动态计算的数据,您还可以创建自己的扩展并实施直邮 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:extension/Classes/Hook/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;
    }

}