Есть несколько способов сделать это.Вверху моей головы:
Вы можете установить электронную почту в качестве канала для вашего бота, но это просто означает, что пользователь будет общаться с вашим ботом по электронной почте.Но вы можете отслеживать контакты клиентов по этому адресу электронной почты.
В противном случае, как было сказано выше в D4CKCIDE, вы можете встроить некоторую простую логику для отправки уведомлений, как только в вашей логике бота появится определенный процесс.Например, я встроил быструю функцию отправки электронной почты с одного адреса электронной почты на другой (в данном случае с моей электронной почты outlook на мою почту gmail), как только будет выполнено действие 'speechUpdate', потому что это означает, что новый пользователь подключился кмой ботОн не отправляет мне всю историю, а просто пинг как напоминание, для целей отслеживания:
else if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate)
{
if (turnContext.Activity.MembersAdded != null)
{
// Iterate over all new members added to the conversation
foreach (var member in turnContext.Activity.MembersAdded)
{
// Greet anyone that was not the target (recipient) of this message
// the 'bot' is the recipient for events from the channel,
// turnContext.Activity.MembersAdded == turnContext.Activity.Recipient.Id
// indicates the bot was added to the conversation.
if (member.Id != turnContext.Activity.Recipient.Id)
{
await turnContext.SendActivityAsync($"Hi there - {member.Name}. {WelcomeMessage}", cancellationToken: cancellationToken);
await turnContext.SendActivityAsync(InfoMessage, cancellationToken: cancellationToken);
await turnContext.SendActivityAsync(PatternMessage, cancellationToken: cancellationToken);
}
EmailPingFunction();
}
}
}
Затем я построил функцию EmailPingFunction следующим образом:
private static void EmailPingFunction()
{
// setup strings
string sender = "BotsyJohnson@outlook.com";
string password = "********"; // put your email's password here ^_^
string recipient = "BotsyJohnson@gmail.com";
// set the client:
SmtpClient outlookSmtp = new SmtpClient("smtp-mail.outlook.com");
// use the 587 TLS port
outlookSmtp.Port = 587;
// set the delivery method
outlookSmtp.DeliveryMethod = SmtpDeliveryMethod.Network;
// set the credentials
outlookSmtp.UseDefaultCredentials = false;
System.Net.NetworkCredential credentials =
new System.Net.NetworkCredential(sender, password);
outlookSmtp.Credentials = credentials;
// enable SS1
outlookSmtp.EnableSsl = true;
// set up and send the MailMessage
try
{
Console.WriteLine("start to send email over TLS...");
MailMessage message = new MailMessage(sender, recipient);
message.Subject = "This is a test of the not-emergency alert system";
message.Body = "Someone just pinged your bot. Please go into your set storage account to review";
outlookSmtp.Send(message);
Console.WriteLine("email was sent successfully!");
}
catch (Exception ex)
{
Console.WriteLine("failed to send email with the following error:");
Console.WriteLine(ex.Message);
}
}
Просто дляПодчеркните, что сказал Николас Р., потому что он абсолютно прав: это обычай, и только один вариант того, как вы можете это сделать.Это простой и грязный вариант ОДНОГО способа создать какое-то уведомление.