18910140161

使用smptlib将图像添加到电子邮件中,并使用Python中的smtplib以HTML形式显示图像

顺晟科技

2022-10-19 14:44:05

210

我有一个脚本,它从API获取一些数据,并创建一个pandas数据帧。我正在使用smtplib以HTML附件的形式向电子邮件发送这些数据,该附件运行良好,但是,我正在努力在HTML页面上显示图像/徽标。

def email_new(df): # email function for sending the pandas data frame email and report
message = MIMEMultipart()
message['Subject'] = "Call Test Report"
message['From'] = creds.sender
message['To'] = creds.recipient

df.columns = ['Interacrion ID', 'MOS Score', 'R-Factor']

part1 = MIMEText(df.to_html(classes='table table-striped table-hover text-center', justify='center', index=False), "html") # html content)
html = """\
            <!doctype html>
            <html lang="en">
            <head>
              <meta charset="utf-8">
              <meta name="viewport" content="width=device-width, initial-scale=1">
              <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet">
              <link href="https://getbootstrap.com/docs/5.2/assets/css/docs.css" rel="stylesheet">
              <title>Bootstrap Example</title>
              <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js"></script>
            </head>
            <body class="p-3 m-0 border-0 bd-example">

              <!-- Navbar Code -->
              
              <nav class="navbar navbar-expand-lg bg-dark">
                <div class="container-fluid">
                  <a class="navbar-brand text-primary" href="#">Call Test Report - EMIS</a>
                  <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                </div>
              </nav>

              <!-- End Navbar Code -->

              <!-- Logo Code -->

              <div class="container">
                <!-- Content here -->
                <br>
                <div class="d-flex justify-content-center">
                  <img src="logo.svg" height="200" width="400">
                </div>
                <br>
              </div>

              <!-- End of Logo Code -->

              <!-- Display Pandas Table Code -->

              <div>
                {0}
              </div>

              <!-- End of Display Pandas Table Code -->

              <!-- Footer Code Starts Here -->


              <!-- Footer Code Ends Here-->
            
            </body>
          </html>
              """.format(part1)
part2 = MIMEText(html, 'html')
message.attach(part1)
message.attach(part2)
with smtplib.SMTP("smtp.office365.com", 587) as server: # use outlook email server
    server.starttls() # starttls for encryption
    server.login(creds.sender, creds.password) # login to Office365 server
    server.sendmail(creds.sender, creds.recipient, message.as_string()) # send the mail

如果name=='main': data=genesysData() email_new(data)


顺晟科技:

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航