Отправка таблицы с рамкой по электронной почте, используя Python - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь отправить электронное письмо, используя python, мне удалось записать содержимое базы данных в файл со следующим фрагментом:

# CREATE A NEW FILE
    path = 'databasetofile.txt'
    if not os.path.exists(path):
        open(path, 'w')
    else:
        f = open(path, 'r+')
        f.truncate()

with open(path, 'a+') as f:
    f.write("ACCOUNT\n\n")
    for k in range(len(dq)):
        f.write(str(dq[k][0])+"\t\t"+str(dq[k][1])+"\n")
    f.write("*******************************************************\n\n")

dq представляет курсор базы данных, файл имеет Структура из 2 столбцов и представляет собой файл .txt.

Используя этот фрагмент, мне удалось записать содержимое файла, сгенерированного из базы данных, в текстовое электронное письмо:

with open(path) as fp:
    content = MIMEText(fp.read())
msg = content

Похоже что контент, сгенерированный в электронной почте, каким-то образом скремблирован и выглядит не очень хорошо.

Я искал в inte rnet для создания HTML внутри содержимого тела, но у меня возникают проблемы с инкапсуляцией каждой строки моего файл с тегами "tr". Я полагаю, что мне придется пройти по oop через каждую строку, но я воспринимаю неудачи при этом.

<html>
  <head>
    <meta charset="utf-8" />
    <style type="text/css">
      table {
        background: white;
        border-radius:3px;
        border-collapse: collapse;
        height: auto;
        max-width: 900px;
        padding:5px;
        width: 100%;
        animation: float 5s infinite;
      }
  tr {
    border-top: 1px solid #C1C3D1;
    border-bottom: 1px solid #C1C3D1;
    border-left: 1px solid #C1C3D1;
  }
<table>
  <thead>
    <tr style="border: 1px solid #1b1e24;">
      <th>head1</th>
      <th>head2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Data of column 1 first row</td>
      <td>Data of column 2 first row</td>
    </tr>
    <tr>
      <td>Data of column 1 second row</td>
      <td>Data of column 2 second row</td>
    </tr>
<tr>
      <td>And so on and so on until end of file/td>
      <td>And so on and so on until end of file</td>
    </tr>


  </tbody>
</table>

Учитывая тот факт, что данные таблицы в этом случае будут элементами моего файла, сохраненными в " путь "

Может ли кто-нибудь помочь мне достичь этого?

...