【问题标题】:Sitecore WFFM SendEmailMessage SMTP Password Authentication ErrorSitecore WFFM SendEmailMessage SMTP 密码验证错误
【发布时间】:2016-04-14 17:39:29
【问题描述】:

我目前正在运行版本 7.2 rev 140526 的本地 Sitecore 和 2.4 rev 150619 的营销人员 Web 表单。我目前在使用 WFFM SendEmailMessage 默认保存操作时遇到 SMTP 身份验证失败错误。

经过一番调查,我发现这是因为 WFFM 的内部 EmailAttributes 类存储 SMTP 配置(来自 web.config 或 SaveAction 本身的参数字段,根据他们的documentation)正在使用一年多前更改的旧 SMTP 密码。

也就是说,尽管webconfig和Parameters字段中的邮件服务器密码指定了相同的值,但以下两行代码检索到的值是不同的:

var configPassword = Sitecore.Configuration.Settings.GetSetting("MailServerPassword");
// EmailAttributes.Password
var basePassword = Password;

访问 EmailAttributes.Password 字段时返回的旧密码既不存在于解决方案或 Sitecore/Website 目录的 web.config 中,也不存在于我的本地 showconfig 中。此外,默认 WFFM SendEmailMessage 保存操作的参数字段中不存在旧密码,并且针对 Core、Master 和 Web 数据库执行的以下 Sitecore 查询不会产生任何结果:

fast://*[@Parameters = '%fooBar%']

另外值得注意的是,如果使用configPassword变量中包含的值(即正确的密码)覆盖EmailAttribute的Password字段中包含的值(例如Password = configPassword),邮件发送成功并且没有SMTP 服务器的身份验证错误。

我们有一个继承自 Sitecore.Form.Submit.SendMessage 的自定义 SendEmail 保存操作,覆盖 Execute 方法,操作字段集合并调用 base.Execute() 并成功发送电子邮件。

此外,在 WFFM v 2.3.0 rev 130118 中,当使用 web.config 文件中的相同 SMTP 配置和注入参数的配置时,使用 WFFM 提供的默认 SendEmailMessage 保存操作时不会引发 SMTP 身份验证失败异常SendEmailMessage 保存操作的字段。

我不知道 EmailAttributes.Password 字段如何/为什么会获得配置中不存在的值,不是来自 sitecore 中 SaveAction 上的参数字段,也不是在 SMTP 中手动配置电子邮件 IIS 模块。

任何见解将不胜感激!

【问题讨论】:

  • 仔细检查您的操作是“发送电子邮件”,而不是“发送电子邮件营销活动消息”。如果是第二个,请参考 ECM 配置来设置 SMTP 设置。

标签: sitecore web-forms-for-marketers


【解决方案1】:

这个问题很可能是由于 WFFM 参数的存储方式造成的。不幸的是,当您向表单添加操作时,保存操作不会存储为对原始操作的引用。实际发生的是参数在添加时从保存操作的参数字段复制到表单上的Save Actions 字段。由于它是副本而不是引用,因此更改原始保存操作的参数不会更改使用该保存操作的任何现有表单。

您可以通过转到内容编辑器中的表单来验证这一点,转到查看功能区并确保选中 Standard FieldsRaw Values。然后检查提交部分下的Save Actions 字段。您应该在 <parameters> 节点的 XML 中找到密码。

有 2 个选项可以解决此问题:

  • 从表单中删除发送电子邮件保存操作并重新添加
  • 编辑 Save Actions 字段中的 XML 以删除密码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多