Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在同一电子邮件中发送查询中返回的所有数据_Python_Mysql_Email_Smtp - Fatal编程技术网

Python 在同一电子邮件中发送查询中返回的所有数据

Python 在同一电子邮件中发送查询中返回的所有数据,python,mysql,email,smtp,Python,Mysql,Email,Smtp,我有以下疑问: cursor.execute("SELECT raddb.StockMinimo.Id, raddb.StockMinimo.Produto, Minimo, Quantidade FROM raddb.StockMinimo LEFT OUTER JOIN raddb.StockProdutos ON raddb.StockProdutos.Id = raddb.StockMinimo.Id WHERE raddb.StockMinimo.Identificacao = '3'

我有以下疑问:

cursor.execute("SELECT raddb.StockMinimo.Id, raddb.StockMinimo.Produto, Minimo, Quantidade FROM raddb.StockMinimo LEFT OUTER JOIN raddb.StockProdutos ON raddb.StockProdutos.Id = raddb.StockMinimo.Id WHERE raddb.StockMinimo.Identificacao = '3' AND raddb.StockMinimo.Ativo = '1' AND Quantidade < Minimo AND Minimo > '0'")
myresult = cursor.fetchall()
然后我对执行
,以返回结果:

for linha in myresult:
 Produto = linha[1]
 Minimo = linha[2]
 Quantidade = linha[3]
我发送的电子邮件如下:

texto        = 'Os seguinte produtos encontram-se com quantidade de stock igual ou inferior ao stock minimo. {} ({}) ({})'.format(
        Produto.encode("utf-8"), Quantidade, Minimo)
问题是它会为从数据库返回的每一行发送一封电子邮件。当它返回3行时,它会发送3封电子邮件。 我打算在同一封电子邮件中发送查询中返回的所有行

完整代码:

myresult = cursor.fetchall()

for linha in myresult:
 Produto = linha[1]
 Minimo = linha[2]
 Quantidade = linha[3]

 if Quantidade <= Minimo:
   remetente    = 'xxxxxxxxxxx@gmail.com'
   senha        = 'xxxxxxxxx'

   destinatario = ['xxxxxxxx@123.pt']
   assunto      = 'Stock Papelaria'
   texto        = 'Os seguinte produtos encontram-se com quantidade de stock igual ou inferior ao stock minimo. Produto: {} Quantidade: {} Minimo: {}'.format(
        Produto.encode("utf-8"), Quantidade, Minimo)

   msg = '\r\n'.join([
      'From: %s' % remetente,
      'To: %s' % destinatario,
      'Subject: %s' % assunto,
      '',
      '%s' % texto
   ])

   server = smtplib.SMTP('smtp.gmail.com:587')
   server.starttls()
   server.login(remetente,senha)
   server.sendmail(remetente, destinatario, msg)
   server.quit()
myresult=cursor.fetchall()
对于myresult中的linha:
Produto=linha[1]
最小值=林哈[2]
Quantidade=linha[3]

如果Quantidade首先,我在邮件中发送的邮件是错误的

纠正此问题后,我在for之前创建了变量,然后在该变量中连接了for中返回的变量:

resultado = []

for linha in myresult:
 Produto = linha[1]
 Minimo = linha[2]
 Quantidade = linha[3]
 if Quantidade <= Minimo:
  resultado.append('Produto: ' + Produto.encode("utf-8") + '          Quantidade: ' + str(Quantidade) + '          Minimo: ' + str(Minimo))
  result = ''.join(resultado)
remetente    = 'xxxxxxxxxxx@gmail.com'
senha        = 'xxxxxxxxx'

destinatario = ['xxxxxxxx@123.pt']
assunto      = 'Stock Papelaria'
texto        = 'Os seguinte produtos encontram-se com quantidade de stock igual ou inferior ao stock minimo. Produto: {} Quantidade: {} Minimo: {}'.format(
    Produto.encode("utf-8"), Quantidade, Minimo)

msg = '\r\n'.join([
  'From: %s' % remetente,
  'To: %s' % destinatario,
  'Subject: %s' % assunto,
  '',
  '%s' % texto
])

server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(remetente,senha)
server.sendmail(remetente, destinatario, msg)
server.quit()
resultado=[]
对于myresult中的linha:
Produto=linha[1]
最小值=林哈[2]
Quantidade=linha[3]

如果Quantidade在for循环中发送邮件?@komatiraju032我打算在一封电子邮件中发送for中返回的所有数据。我将把完整的代码添加到一个字符串中。然后发送mail@komatiraju032我已经尝试过以这种方式(串联)收集从数据库返回的所有内容
teste=[Produto.encode(“utf-8”)+str(Quantidade)+str(Minimo)]
,但仍然会发送单独的电子邮件anyway@komatiraju032可以帮助将for结果添加到字符串中吗?
resultado = []

for linha in myresult:
 Produto = linha[1]
 Minimo = linha[2]
 Quantidade = linha[3]
 if Quantidade <= Minimo:
  resultado.append('Produto: ' + Produto.encode("utf-8") + '          Quantidade: ' + str(Quantidade) + '          Minimo: ' + str(Minimo))
  result = ''.join(resultado)
remetente    = 'xxxxxxxxxxx@gmail.com'
senha        = 'xxxxxxxxx'

destinatario = ['xxxxxxxx@123.pt']
assunto      = 'Stock Papelaria'
texto        = 'Os seguinte produtos encontram-se com quantidade de stock igual ou inferior ao stock minimo. Produto: {} Quantidade: {} Minimo: {}'.format(
    Produto.encode("utf-8"), Quantidade, Minimo)

msg = '\r\n'.join([
  'From: %s' % remetente,
  'To: %s' % destinatario,
  'Subject: %s' % assunto,
  '',
  '%s' % texto
])

server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(remetente,senha)
server.sendmail(remetente, destinatario, msg)
server.quit()