猿问

Python boto3 SNS 电子邮件格式

我编写了一个代码,其中我使用 aws sns 通过 boto3 库向利益相关者发送电子邮件通知。


我的问题是,当我编写代码时,我在文本之间使用了 4 个空格(或制表符)间距以使其更具可读性,但是当将其作为电子邮件 (gmail) 查看时,它显示的是完全未格式化的。


我需要的是一种正确格式化我的电子邮件的方法


我的代码:


import boto3

def publish_to_sns(sub, msg):

    topic_arn = "<my sns arn>"

    sns = boto3.client("sns")

    response = sns.publish(

        TopicArn=topic_arn,

        Message=msg,

        Subject=sub

    )


def final_status(f_name, row_count, staged_row_count, status):

    sub = "Complete [{status}]: Process is complete".format(status=status)

    msg = """

        Process completed.


        ------------------------------------------------------------------------------------

        Summary of the process:

        ------------------------------------------------------------------------------------

        File Name    :   {file_name}

        Status       :   {status}

        Error        :   N/A

        Rows Read    :   {r_read}

        Rows Staged  :   {r_staged}

        ------------------------------------------------------------------------------------

        """.format(file_name=f_name, r_read=row_count, r_staged=staged_row_count, status=status)

    publish_to_sns(sub, msg)

我所看到的(冒号没有对齐):

莫回无
浏览 273回答 2
2回答

皈依舞

这应该可以帮助您修复空格:def final_status(f_name, row_count, staged_row_count, status):sub = "Complete [{status}]: Process is complete".format(status=status)msg = """&nbsp; &nbsp; Process completed.&nbsp; &nbsp; ------------------------------------------------------------------------------------&nbsp; &nbsp; Summary of the process:&nbsp; &nbsp; ------------------------------------------------------------------------------------&nbsp; &nbsp; {a:<20}&nbsp; &nbsp; :&nbsp; &nbsp;{file_name}&nbsp; &nbsp; {b:<20}&nbsp; &nbsp; :&nbsp; &nbsp;{status}&nbsp; &nbsp; {c:<20}&nbsp; &nbsp; :&nbsp; &nbsp;N/A&nbsp; &nbsp; {d:<20}&nbsp; &nbsp; :&nbsp; &nbsp;{r_read}&nbsp; &nbsp; {e:<20}&nbsp; &nbsp; :&nbsp; &nbsp;{r_staged}&nbsp; &nbsp; ------------------------------------------------------------------------------------&nbsp; &nbsp; """.format(a='File Name', b = 'Status', c = 'Error', d = 'Rows Read', e = 'Rows Staged', file_name=f_name, r_read=row_count, r_staged=staged_row_count, status=status)print(sub)print(msg)

隔江千里

我能够通过使用一个简单的 hack 来实现非常可读的格式。我所做的是从我的 IDE 中复制了整个字符串,并将其粘贴到我的 Gmail(我们正在使用 Gmail 套件)撰写邮件窗口中。Gmail 中的无格式文本然后我将文本格式化为可读:Gmail 中的格式化文本然后我将整个字符串粘贴回我的 IDE。IDE 中的格式化文本它奏效了!!!现在通知对于利益相关者来说似乎更具可读性,并且考虑到 SNS 发送富文本消息的限制,这似乎是一个非常简单的方法。
随时随地看视频慕课网APP

相关分类

Python
我要回答