簡體   English   中英

如何從 lambda aws -python 傳遞 email 主體中的變量

[英]how to pass variables in the email body from lambda aws -python

I am trying to send email from lambda by passing variable in the html body inside payload(in send_email()).I tried using +str(latesturgency)+ and also using {latestimpact} .This doesn.t work.I am new to lambda 和 python。

我該如何解決這個問題?

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

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


def send_email(email,latestdescription,latestservice,latestimpact,latesturgency):
    
    conn = http.client.HTTPSConnection("mail.us-east-1.aws.cloud.bmw")
   
    payload = {
        "from":"xxx@yyy.com",
        "to": "xxx@yyy.com",
        "subject": "Test mail","textbody": "body",
        "htmlbody": "<h3>Test body!Please create a +str(latesturgency)+ priority ticket to {latestservice}  , with below message:{latestdescription}</h3>"
        
    }
    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 lambda_handler(event, context):

    empidemployee= event['currentIntent']["slots"]["empidemployee"]
    latestdescription= event['currentIntent']["slots"]["latestdescription"]
    latestservice= event['currentIntent']["slots"]["latestservice"]
    latestimpact= event['currentIntent']["slots"]["latestimpact"]
    latesturgency= event['currentIntent']["slots"]["latesturgency"]
    email=event['currentIntent']["slots"]["email"]

    send_email(email,latestdescription,latestservice,latestimpact,latesturgency)
   

您可以使用 function format從您的字符串中執行此操作,我在下面添加了這個。

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

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


def send_email(email,latestdescription,latestservice,latestimpact,latesturgency):
    
    conn = http.client.HTTPSConnection("mail.us-east-1.aws.cloud.bmw")
   
    payload = {
        "from":"xxx@yyy.com",
        "to": "xxx@yyy.com",
        "subject": "Test mail","textbody": "body",
        "htmlbody": "<h3>Test body!Please create a {} priority ticket to {}, with below message:{}</h3>".format(latesturgency, latestservice, latestdescription)
        
    }
    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 lambda_handler(event, context):

    empidemployee= event['currentIntent']["slots"]["empidemployee"]
    latestdescription= event['currentIntent']["slots"]["latestdescription"]
    latestservice= event['currentIntent']["slots"]["latestservice"]
    latestimpact= event['currentIntent']["slots"]["latestimpact"]
    latesturgency= event['currentIntent']["slots"]["latesturgency"]
    email=event['currentIntent']["slots"]["email"]

    send_email(email,latestdescription,latestservice,latestimpact,latesturgency)

使用{}表示法指示應替換變量的位置,然后在您的字符串按您將使用它們的順序傳遞變量之后使用.format()

就你而言,現在是

"<h3>Test body!Please create a {} priority ticket to {}, with below message:{}</h3>".format(latesturgency, latestservice, latestdescription)

有關格式function 的更多信息,請閱讀文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM