Bot Framework - 通过 Directline C# Bot 发送电子邮件的电子邮件通道
Bot Framework - Email Channel To send Email Via Directline C# Bot
如果机器人无法提供所需的帮助,我想使用机器人框架的电子邮件通道通过机器人发送电子邮件。
我已经配置了一个outlook office 365邮箱并且成功的添加到了我的bot的邮箱通道中。
因为我从来没有使用过电子邮件渠道,所以我不确定在电子邮件的情况下必须设置的渠道数据,所以我不知道缺少什么或者回复创建时是否有错误。
我想从 bot 直接向用户的电子邮件 ID 发送包含一些相关详细信息的电子邮件,将向其发送电子邮件的用户不参与对话。
我在尝试通过以下代码发送电子邮件时收到错误请求错误:
ChannelAccount botAccount = new ChannelAccount(
id: $"{ConfigurationManager.AppSettings["BotEmail"]}".ToLower(),
name: $"{ConfigurationManager.AppSettings["BotId"]}")
{ Id = ConfigurationManager.AppSettings["BotEmail"]};
ChannelAccount userAccount = new ChannelAccount(
id: $"{ConfigurationManager.AppSettings["UserEmail"]}",
name: "Vanjuli")
{ Id = ConfigurationManager.AppSettings["UserEmail"]};
var serviceURL = @"https://email.botframework.com/";
MicrosoftAppCredentials.TrustServiceUrl(serviceURL, DateTime.MaxValue);
using (var _connector = new ConnectorClient(new Uri(serviceURL)))
{
ConversationResourceResponse conversationId = await _connector.Conversations.CreateDirectConversationAsync(botAccount, userAccount);
IMessageActivity reply = Activity.CreateMessageActivity();
reply.From = botAccount;
reply.Recipient = userAccount;
ConversationAccount conversationAccount = new ConversationAccount(id: conversationId.Id);
reply.Conversation = new ConversationAccount(id: conversationId.Id);
reply.Text = "This is dummy text of an email!";
reply.Locale = "en-Us";
await _connector.Conversations.SendToConversationAsync((Activity)reply);
}
我还想通过电子邮件发送附件并将电子邮件发送到一个组(服务台或电子邮件 ID 组),是否可以通过部署在网站上的机器人的电子邮件通道发送电子邮件,或者是否有任何挑战或风险?
根据 Microsoft 文档,bot 会接收来自注册邮件的所有电子邮件,并且可以回复任何电子邮件,但我想要实现的是明确发送电子邮件,这不是对任何以前邮件的回复。对于不仅仅是电子邮件聊天机器人或部署在网站上的机器人来说,这样的事情是否可能?
虽然意图令人钦佩,但根本不推荐这种方法,并且不打算以这种方式混合渠道。
Nicholas 是正确的;如果您想展示多个频道,最好不要将它们放在一个频道中
如果机器人无法提供所需的帮助,我想使用机器人框架的电子邮件通道通过机器人发送电子邮件。
我已经配置了一个outlook office 365邮箱并且成功的添加到了我的bot的邮箱通道中。
因为我从来没有使用过电子邮件渠道,所以我不确定在电子邮件的情况下必须设置的渠道数据,所以我不知道缺少什么或者回复创建时是否有错误。
我想从 bot 直接向用户的电子邮件 ID 发送包含一些相关详细信息的电子邮件,将向其发送电子邮件的用户不参与对话。
我在尝试通过以下代码发送电子邮件时收到错误请求错误:
ChannelAccount botAccount = new ChannelAccount(
id: $"{ConfigurationManager.AppSettings["BotEmail"]}".ToLower(),
name: $"{ConfigurationManager.AppSettings["BotId"]}")
{ Id = ConfigurationManager.AppSettings["BotEmail"]};
ChannelAccount userAccount = new ChannelAccount(
id: $"{ConfigurationManager.AppSettings["UserEmail"]}",
name: "Vanjuli")
{ Id = ConfigurationManager.AppSettings["UserEmail"]};
var serviceURL = @"https://email.botframework.com/";
MicrosoftAppCredentials.TrustServiceUrl(serviceURL, DateTime.MaxValue);
using (var _connector = new ConnectorClient(new Uri(serviceURL)))
{
ConversationResourceResponse conversationId = await _connector.Conversations.CreateDirectConversationAsync(botAccount, userAccount);
IMessageActivity reply = Activity.CreateMessageActivity();
reply.From = botAccount;
reply.Recipient = userAccount;
ConversationAccount conversationAccount = new ConversationAccount(id: conversationId.Id);
reply.Conversation = new ConversationAccount(id: conversationId.Id);
reply.Text = "This is dummy text of an email!";
reply.Locale = "en-Us";
await _connector.Conversations.SendToConversationAsync((Activity)reply);
}
我还想通过电子邮件发送附件并将电子邮件发送到一个组(服务台或电子邮件 ID 组),是否可以通过部署在网站上的机器人的电子邮件通道发送电子邮件,或者是否有任何挑战或风险?
根据 Microsoft 文档,bot 会接收来自注册邮件的所有电子邮件,并且可以回复任何电子邮件,但我想要实现的是明确发送电子邮件,这不是对任何以前邮件的回复。对于不仅仅是电子邮件聊天机器人或部署在网站上的机器人来说,这样的事情是否可能?
虽然意图令人钦佩,但根本不推荐这种方法,并且不打算以这种方式混合渠道。
Nicholas 是正确的;如果您想展示多个频道,最好不要将它们放在一个频道中