使用python发送电子邮件:如何形成消息?

使用python发送电子邮件:如何形成消息?,python,string,email,project,gspread,Python,String,Email,Project,Gspread,我正在制作一个程序,可以从google sheet中检索数据,google sheet是一个关于我一周花费的支出日记。成功检索数据后,程序将向我发送一封电子邮件,告诉我一周内每天的开销 我的消费日记照片: 我正在使用gspread检索数据,并且我能够使用for循环逐列检索数据 它以列表的形式提供数据。 例如,如果我 num_days = 7 goods = [] for day in range(2, num_days + 2): goods.append(worksheet.col_

我正在制作一个程序,可以从google sheet中检索数据,google sheet是一个关于我一周花费的支出日记。成功检索数据后,程序将向我发送一封电子邮件,告诉我一周内每天的开销

我的消费日记照片:

我正在使用gspread检索数据,并且我能够使用for循环逐列检索数据

它以列表的形式提供数据。 例如,如果我

num_days = 7
goods = []

for day in range(2, num_days + 2):
    goods.append(worksheet.col_values(day))


OUTPUT: [['Mon 04/08/2019', 'Edeka 20.07'], ['Tue 04/09/2019', 'Edeka 9.77', 'Gym 60'], ['Wed 04/10/2019', 'Party 5', 'Jiujitsu System 30', 'Jiujitsu card 5', 'Jiujitsu Monthly fee 54'], ['Thu 04/11/2019', 'Laundry 3.5', 'Part 7.5 Euro'], ['Fri 04/12/2019', 'Edeka 5.95', 'Laundry 2'], ['Sat 04/13/2019', 'Food Festival 20 ', 'DM Hair Roller 3.25', 'Rewe 9.97'], ['Sun 04/14/2019', 'Monitor 224.99']]
因此,我能够逐列检索该列,并将它们作为列表放入列表中

那很好。但我想用以下格式发送电子邮件

EX)

星期一: 艾德卡20.07

星期二: 艾德卡9.77, 健身房60

太阳:监视器224.99

这是我邮箱里收到的电子邮件的照片。 我希望第一个元素能够显示我购买的商品,不包括日期。

我怎样才能形成像上面照片一样发送的电子邮件信息?

我目前正在使用smtplib发送电子邮件,但我不知道如何将我购买的商品放入邮件中

def send_email_for_spending(money_spent_week):
    with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
        smtp.ehlo()
        smtp.starttls()
        smtp.ehlo()

        smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)

        # title for your email
        subject = "Here is how much you spent in this week."

        # Number of Days
        num_days = 7


        goods = []

        # it starts from 2 because column that has monday is 2nd  
        # column
        for day in range(2, num_days + 2):
            goods.append(worksheet.col_values(day))

        message = f"""
            MON:
                {goods[0]}
            TUE:
                {goods[1]}
            WED:
                {goods[2]}
            THU:
                {goods[3]}
            FRI:
                {goods[4]}
            SAT:
                {goods[5]}
            SUN:
                {goods[6]}
        """

        smtp.sendmail(EMAIL_ADDRESS, 'dudeindaegu@gmail.com', message)

是的,你的问题有解决办法。您应该继续使用
smptlib
,因为它是python中最好的电子邮件发送模块(如果还有其他模块的话)。但是,要解决您的问题,您可以将
day.pop(0)
添加到范围(2,num\u days+2)中的
之后:
您可以找到有关此的更多信息。弹出后,您可以使用如下的
join
方法:
output=”“.join(goods)

将它放在放置
.pop()
东西的位置之后

您应该继续使用smptlib,因为它是python中最好的电子邮件发送模块(如果还有其他模块的话)。但是,要解决您的问题,您可以将
day.pop(0)
添加到范围(2,num\u days+2)中的
之后:
您可以找到有关此Oh的更多信息,这将起作用!然而,有什么方法可以像普通句子一样打印出来吗?例如,如果我使用day.pop(0),它会像这样打印“[edeka 20.7,gym 60]”,但我确实希望像这样打印“edeka 20.7,gym 60”,不带括号。有什么办法吗?有。弹出后,您可以使用如下方式使用
join
方法:
output=”“.join(goods)
将其放在放置
.pop()
thing@ArnavPoddar是的,它工作得非常好。谢谢!工作得很有魅力:)