【发布时间】: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