Получать и отправлять вложения в виде электронной почты в Microsoft Bot Framework - PullRequest
2 голосов
/ 06 марта 2020

В настоящее время я создаю чат-бота, который может получать вложения и сохранять их в локальном каталоге. Я хочу узнать, как использовать это же вложение и отправить его по электронной почте.

async downloadAttachmentAndWrite(attachment) {
    // Retrieve the attachment via the attachment's contentUrl.
    const url = attachment.contentUrl;
    console.log(attachment)

    // Local file path for the bot to save the attachment.
    const localFileName = path.join(__dirname, attachment.name);

    try {
        // arraybuffer is necessary for images
        const response = await axios.get(url, { responseType: 'arraybuffer' });
        console.log('#####')
        console.log(response.data)
        // If user uploads JSON file, this prevents it from being written as "{"type":"Buffer","data":[123,13,10,32,32,34,108..."
        if (response.headers['content-type'] === 'application/json') {
            response.data = JSON.parse(response.data, (key, value) => {
                return value && value.type === 'Buffer' ? Buffer.from(value.data) : value;
            });
        }
        fs.writeFile(localFileName, response.data, (fsError) => {
            console.log(localFileName)
            console.log(response.data)
            if (fsError) {
                throw fsError;
            }
        });
    } catch (error) {
        console.error(error);
        return undefined;
    }
    // If no error was thrown while writing to disk, return the attachment's name
    // and localFilePath for the response back to the user.
    return {
        fileName: attachment.name,
        localPath: localFileName
    };
}

В настоящее время эта функция предназначена для получения и сохранения в каталоге, но как на самом деле захватить вложение и отправить его в другая функция?

1 Ответ

1 голос
/ 16 марта 2020

Просмотрите образец 24.bot-authentication-msgraph в репозитории BotBuilder-Samples. В этом примере демонстрируется, как можно настроить бота для отправки электронного письма от имени пользователя.

Используя этот образец в качестве ссылки / шаблона, вы можете сделать вывод, как этот процесс может работать для вас (если вы не используете его). MS Graph). Документы здесь объясняют, как файл может быть включен в качестве вложения в электронное письмо.

Если вы сохраните местоположение сохраненного файла, вы сможете прочитать файл из локального файла. каталог и, используя метод, указанный выше, прикрепите файл перед отправкой.

Надежда на помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...