Извлечение содержимого из электронной почты и ответ пользователю-Amazon lex - PullRequest
0 голосов
/ 04 августа 2020

Я создал чат-бота lex. Его цель - поднять тикет. После получения необходимых параметров от пользователя чат-бот отправляет электронное письмо соответствующей команде, чтобы поднять тикет. Я завершил до этого. rasied, я получу электронное письмо в Outlook с номером билета от команды, которая подняла тикет. Теперь я хочу, чтобы чат-бот получил номер тикета и передал его пользователю в виде сообщения для заполнения. Как извлечь номер тикета из отправить по электронной почте и сохранить в лямбде? Есть ли другой способ сделать это?

Пример разговора

Пользователь: Привет Чат-бот: Введите свой идентификатор? Пользователь: 1235 Чат-бот: введите свое описание? Пользователь: ab c Чат-бот: влияние? Пользователь: Низкий Чат-бот: Эй, ваш билет поднят (сообщение о заполнении). Также ваш номер билета t1234

Ниже приведен код ламы:

import json
import logging
import re
import http.client
import mimetypes

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)


def send_email(empidemployee,basicinfo,latestdesc,latestservice,latestimpact,latesturgency):
    
    conn = http.client.HTTPSConnection("mail.us-east-1.aws.cloud.xxx")
    payload = {
        "from":"xxx@yyy.com",
        "to": "xxx@yyy.com",
        "subject": "Incident","textbody": "body",
        "htmlbody": "empidemployee,latestimpact,latestservice,latesturgency,latestdesc,basicinfo"
            
    }
    print(payload)
    headers = {
     'Content-Type': 'application/json'
    }
    data=json.dumps(payload) 
    print(data)
    conn.request("POST", "", data, headers)
    res = conn.getresponse()
    data = res.read()
    print(data.decode("utf-8"))
    print("done")

def close():
    val=  {
             "dialogAction":
            {
                "fulfillmentState":"Fulfilled",
                "type":"Close",
                "message":
                 {
                     "contentType":"PlainText",
                     "content":"Hey your ticket has been raiised"
                 },
                
                }
                }
    print(val)
    return val
    

def lambda_handler(event, context):
    
    slots = event['currentIntent']['slots']

    empidemployee= event['currentIntent']["slots"]["empidemployee"]
    latestdesc= event['currentIntent']["slots"]["latestdesc"]
    latestservice= event['currentIntent']["slots"]["latestservice"]
    latestimpactvalue= event['currentIntent']["slots"]["latestimpactvalue"]
    latesturgency= event['currentIntent']["slots"]["latesturgency"]
    basicinfo=event['currentIntent']["slots"]["basicinfo"]
    
    val=close()
    return val
    
   
...