【发布时间】:2015-05-25 12:06:45
【问题描述】:
我想知道有没有办法让用户订阅/取消订阅电子邮件活动?
它是否保存在 MSSQL 中的数据库/表之一中?
【问题讨论】:
标签: sitecore sitecore-dms sitecore-ecm
我想知道有没有办法让用户订阅/取消订阅电子邮件活动?
它是否保存在 MSSQL 中的数据库/表之一中?
【问题讨论】:
标签: sitecore sitecore-dms sitecore-ecm
如果您使用该方法并根据用户是否担任角色来确定选择加入和退出,则它存储在core 数据库中的aspnet_UsersInRoles 表中。此表不保留角色分配给用户时的信息。这就是您无法在用户订阅或取消订阅电子邮件活动时获取信息的原因。
您唯一可以检查的是用户是否在角色中:
user.IsInRole(roleName)
【讨论】:
用户的订阅是由用户角色驱动的,但是在ECM中可以获取用户的订阅,你只需要使用api。
您可以通过电子邮件地址获取联系人:
string fullName = commonDomain + "\\" + Util.AddressToUserName(username);
var contact = Contact.FromName(fullName);
var subscriptions = contact.GetSubscriptions();
一旦您有了联系人,您就可以调用GetSubscriptions() 方法,该方法将返回用户注册的收件人列表。您可以通过许多其他方法调用联系人,如果有方法可以获取取消订阅/订阅的日期,它将在这里。
如果没有反映Sitecore.EmailCampaign.dll 并继续寻找! Analytics 数据库的自动化状态表中可能有一些额外的信息。此处有关自动化状态的更多信息:
还注意到Sitecore.Modules.EmailCampaign.Core.Analytics.AnalyticsHelper 类上有一个方法GetUnsubscribersStatistics。这将有取消订阅的日期。
【讨论】: