1
我想獲得以下行到我的項目,以測試Microsoft博特框架的電子郵件功能的電子郵件服務:如何實施Microsoft網絡機器人
List<ChannelAccount> participants = new List<ChannelAccount>();
participants.Add(new ChannelAccount("[email protected]", "Shahin Ansari"));
IMessageActivity message = Activity.CreateMessageActivity();
bool isGroup = false;
ConversationParameters cpMessage = new ConversationParameters(message.Recipient, isGroup, participants, "Quarter End Discussion");
var ConversationId = connector.Conversations.CreateConversationAsync(cpMessage);
//message.From = botChannelAccount;
message.From = new ChannelAccount();
message.Conversation = new ConversationAccount();
message.ChannelId = "email";
message.Text = "Hey, what's up everyone?";
message.Locale = "en-Us";
connector.Conversations.SendToConversation((Activity)message);
//await connector.Conversations.SendToConversation((Activity)message);
var replyMessage = activity.CreateReply("Yo, I heard you Sean.", "en");
connector.Conversations.ReplyToActivityAsync(replyMessage);
但我沒有收到電子郵件。
我知道,發送'喲,我聽說你肖恩'的「打印」聲明在我把它放在頂部時確實有效。但它不在底部。所以在這幾行中有些東西會突破。但是當我把它推到Azure時,我不知道該如何解決這個問題,並且在本地調試它並不會讓我感覺太多,因爲它似乎編譯得很好。有沒有人以前做過?
我想我提出了所有你建議的更新,並推送到Azure,但沒有生成電子郵件。這裏是我更新的代碼:
namespace Bot_Application1
{
[BotAuthentication]
public class MessagesController : ApiController
{
/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
// calculate something for us to return
int length = (activity.Text ?? string.Empty).Length;
// return our reply to the user
Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
await connector.Conversations.ReplyToActivityAsync(reply);
var replyMessage = activity.CreateReply("Yo, I heard you Sean.", "en");
await connector.Conversations.ReplyToActivityAsync(replyMessage);
// Start of my own code
//try {
// The code until the line above
List<ChannelAccount> participants = new List<ChannelAccount>();
participants.Add(new ChannelAccount("[email protected]", "Shahin Ansari"));
IMessageActivity message = Activity.CreateMessageActivity();
bool isGroup = false;
ConversationParameters cpMessage = new ConversationParameters(message.Recipient, isGroup, participants, "Quarter End Discussion");
var ConversationId = await connector.Conversations.CreateConversationAsync(cpMessage);
message.Recipient = new ChannelAccount("[email protected]", "Shahin Ansari");
//message.From = new ChannelAccount("[email protected]", "Shahin Ansari");
message.From = new ChannelAccount();
//message.From = message.ChannelData;
message.Conversation = new ConversationAccount(id: ConversationId.Id);
message.ChannelId = "email";
message.Text = "Hey, what's up everyone?";
message.Locale = "en-Us";
connector.Conversations.SendToConversation((Activity)message);
//await connector.Conversations.SendToConversation((Activity)message);
//}
//catch (Exception ex)
//{
// Trace.TraceError("Sean's Exception: " + ex.ToString());
// throw;
//}
//await connector.Conversations.ReplyToActivityAsync(reply);
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
private Activity HandleSystemMessage(Activity message)
{
if (message.Type == ActivityTypes.DeleteUserData)
{
// Implement user deletion here
// If we handle user deletion, return a real message
}
else if (message.Type == ActivityTypes.ConversationUpdate)
{
// Handle conversation state changes, like members being added and removed
// Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info
// Not available in all channels
}
else if (message.Type == ActivityTypes.ContactRelationUpdate)
{
// Handle add/remove from contact lists
// Activity.From + Activity.Action represent what happened
}
else if (message.Type == ActivityTypes.Typing)
{
// Handle knowing tha the user is typing
}
else if (message.Type == ActivityTypes.Ping)
{
}
return null;
}
}
}
謝謝。這是工作。有一些東西我需要微調,但電子郵件正在生成。 – maverick