0

这是我在这个论坛上的第一个问题......所以,请放纵!

我正在使用带有扩展名direct_mail 3.1.1的TYPO3 4.7.11 (PHP 5.3.3)用于一家非营利公司的 Intranet 站点。

我的问题(可能与错误 #51583 相关:http://forge.typo3.org/issues/51583 是,经过多次测试和尝试,似乎不可能将页面的更新版本保存为时事通讯草稿一种自动调度程序驱动的方式:生成相同的时事通讯,其信息与第一次创建和保存时已经存在的信息相同。

用于时事通讯的特定页面包括一个内容元素“菜单/站点地图”,其中“最近更新的页面”作为“菜单类型”。它已在 Direct Mail 中保存为“草稿(用于定期发送)”。

调度程序包含这 2 个具有重复类型的任务:

- Direct Mail: Create Mail from Draft (direct_mail)
- Direct Mail: Mailing Queue (direct_mail)

注意:手动方式功能齐全,制作的时事通讯确实更新了。与选项“Testmail - Simple”相同!

所以,我的问题似乎与自动预定邮件有关!看起来时事通讯草稿已变成特定时刻的冻结快照,并且 Typo3 在调度程序模式下调用时无法更新/重新计算此页面。

在网上,我看到报告的问题可能与“当通过调度程序发送邮件时,所有发送都使用相同的主题(https://review.typo3.org/21313)”和“直接发送时添加挂钩”通过调度程序发送邮件(forge.typo3.org/issues/48994)”,但这些问题似乎已通过 direct_mail 3.1.1 版本修复。

我做了这些观察,在我看来,有一些相关性:

1.Direct Mailer 的“设置邮件内容获取选项的默认值”中的“内部链接域”下拉列表中没有建议的域,但我在sys_domain表中有一个带有域名的记录(带有没有协议,也没有最后的斜线)。有没有理由认为这条记录不好,或者它不是正确的表?(uid=3, pid, tstamp, crdate, cruser_id, hidden, 排序, prepend_params 和forced=0, redirectHttpStatusCode=301, domain_name=site.subdomain.domain, redirectTo=)

2.在 Typo 3 日志中,我收到了用户_cli_scheduler@LIVE的系统错误消息:

核心:错误处理程序 (BE):PHP 警告:在 ...typo3conf/ext/direct_mail/Classes/Scheduler/MailFromDraft.php 第 125 行中为 foreach() 提供的参数无效。

MailFromDraft.php 的相关部分是这个函数:initializeHookObjects

... /*

  * Initializes hook objects for this class

  *

  * @return    void

  */

 function initializeHookObjects() {

     foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['direct_mail']['mailFromDraft'] as $hookObj) {

         $hookObjectInstance = t3lib_div::getUserObj($hookObj);

         if (is_object($hookObjectInstance) && ($hookObjectInstance instanceof x_directmail_Scheduler_MailFromDraftHook)) {

             $this->hookObjects[] = $hookObjectInstance;

         }

     }

 }

 ...

我不确定是否非常清楚地了解钩子对象的起源和用途......(尽管 Robert Lemke 有这篇有趣的文章:typo3.org/documentation/article/how-to-use-existing-hooks-在你自己的扩展/)

3.TYPO3_CONF_VARS (全局配置)中似乎不存在明显请求的GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['direct_mail']['mailFromDraft'] 。

任何人都可以给我一个建议或线索,告诉我发生了什么以及为什么我无法通过调度程序获得每周更新的时事通讯?我觉得有点糊涂!

提前感谢您的任何建议或解决方案(如果可能出现奇迹)。

问候。

PH SILLIAU

4

2 回答 2

0

为了解决这个问题,经过多次尝试(以及从互联网上收集的信息),这是我们最终在特定案例中使用的解决方案,以使时事通讯工作:

第一个。我们在表sys_domain中创建了一条记录。这是手册和论坛中反复出现的说明,恕我直言,这是合法的。

重要提示:请注意,由于站点的全局故障(无论我们在其中放入什么,例如/、/var/www/sitename、...),redirectTo字段必须保持为空

第二。模板中包含的所有图像、CSS、JS 都必须进行硬编码(例如 http://site/fileamin/images/xxx.png)。如果我们不这样做,结果将是newletter的生产中止:未找到......也许,通过更深入地挖掘,我们是否能够找到我们以某种方式忘记或忽略的参数解决这个问题...

第三。在时事通讯模板 TS 设置中,我们添加了以下 2 个参数:

  • mod.web_modules.dmail.use_domain= [系统域的 uid]

  • config.absRefPrefix = / (为了摆脱 PHP DOCUMENT_ROOT(或 TYPO3_DOCUMENT_ROOT ?)否则会错误地出现在所有生成的链接中。)

结果现在是一个动态生成的时事通讯,日期正常,所有链接都正确且符合 realUrl(没有 ../index.php?id=nnn)..您知道吗?...我们'快乐!:-)

希望它会有所帮助!

非常感谢所有回答(Markus,Urs ......)甚至想到可能的解决方案的人......

PH西里奥

于 2014-01-16T08:18:02.873 回答
0

我以前读过这个问题,但不记得在哪里。谷歌搜索“direct_mail 草稿(用于定期发送)”有所帮助。

试试这个错误: http: //forge.typo3.org/issues/4421

用户 Markus 说:

当您在系统中设置域记录并在 direct_mail 设置中选择它时,一切正常!

如果您没有域记录并在 direct_mail 设置中指定它,您可以发送正常的时事通讯,但如果您尝试草稿功能,它将无法工作,因为 class.tx_directmail_static.php 中的 getUrlBase 函数返回系统的 URL 不可用,因此它不能使用 fetchHTML($file) 并退出 - 因此不会替换第一次启动时创建的旧草稿内容。

我真的不明白为什么这在你第一次设置草稿时会起作用......

因此,设置域记录是一种可行的解决方法。

我希望是的!

可能,您会发现更多相关主题。

否则,解决方法将是

  • 重新考虑任务。由于它是一个 NPO 内部网,如果再次询问,也许要求不是突然需要的 :-)
  • 设置仅执行该精确工作的自定义通知工具。
于 2013-09-18T08:33:52.870 回答