如何通过python通过电子邮件发送“数组”?

问题描述 投票:0回答:1

我想用gmail发送邮件。但是邮件must特别包含一个array。我需要帮助。消息部分在代码块中,专门接受文本类型。

如果我具体说出我的目标,我有一个。csv文件,并且正在从该文件中创建随机子样本。子样本包括5行。我用此随机行创建了一个数组,我想发送此随机行,其类型为array。

import pandas as pd
import smtplib

data = pd.read_csv("Words1.csv")
row1 = data.sample(n=5)
A = [row1]
print(A)
email = '[email protected]'  # Your email
password = 'senderpassword'  # Your email account password
send_to_email = '[email protected]'  # Who you are sending the message to
message = 'A'  # The message in the email 

server = smtplib.SMTP('smtp.gmail.com', 587)  # Connect to the server
server.starttls()  # Use TLS
server.login(email, password)  # Login to the email server
server.sendmail(email, send_to_email, message)  # Send the email
server.quit()  # Logout of the email server

谢谢。

python arrays pandas email gmail
1个回答
0
投票

解决方案;

import numpy as np
import pandas as pd
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

data = pd.read_csv("Words.csv")
row1 = data.sample(n=5)
A = [row1]
num = np.array(row1)

head = ['C1', 'C2', 'C3']
row = ['1','2','3','4','5']
df = pd.DataFrame(num, index=row, columns=head)
html = df.to_html()
print(html)

def py_mail(SUBJECT, BODY, TO, FROM):
    """With this function we send out our html email"""

    MESSAGE = MIMEMultipart('alternative')
    MESSAGE['subject'] = SUBJECT
    MESSAGE['To'] = TO
    MESSAGE['From'] = FROM

    HTML_BODY = MIMEText(BODY, 'html')
    MESSAGE.attach(HTML_BODY)


    password = "@YourPassword"
    server = smtplib.SMTP('smtp.gmail.com:587')
    server.starttls()
    server.login(FROM,password)
    server.sendmail(FROM, [TO], MESSAGE.as_string())
    server.quit()

if __name__ == "__main__":
    """Executes if the script is run as main script (for testing purposes)"""

    email_content = html

    TO = '[email protected]'
    FROM ='[email protected]'

    py_mail("Test email subject", email_content, TO, FROM)
© www.soinside.com 2019 - 2024. All rights reserved.