この投稿に記載されている方法を使用してpandas DataFrameを含むyagmailメールを送信しようとしています:Python Email in HTML format mimelib yandmailがpandasの前に改行を追加するDataFrameがhtmlを生成
しかし、私が試したことが何であれ、DataFrameを印刷する前に、長い文字列改行を追加します。
私のコードは、(私は私のインストールのための電子メールアドレスを変更)です:
#--- Addition to original post ---
import pandas as pd
df = pd.DataFrame([[900, 20.0], [500, 21.0]], columns =['Quantity', 'Price'])
#--- Addition to original post ---
import time
import yagmail
yag = yagmail.SMTP(username, password)
text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttps://www.python.org"
html = df.to_html()
yag.send('[email protected]', "This a reminder call " + time.strftime("%c"), [text,html])
た電子メールの本文は以下のとおりです。
>Hi!
>How are you?
>Here is the link you wanted:
>https://www.python.org
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Quantity Price
>0 900 20.0
>1 500 21.0
私もエンコード、DOCTYPEタグを追加しようとしましたutf-8として、ユニコードからストリングに変換しますが、私は成功しませんでした。
これはバグですか、誰でも解決策を教えてくれますか?
編集#1: HTML変数は、以下が含まれていることに注意してください:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Quantity</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>900</td>
<td>20.0</td>
</tr>
<tr>
<th>1</th>
<td>500</td>
<td>21.0</td>
</tr>
</tbody>
</table>
編集#2: を私はhtmlとDOCTYPEタグを追加しようとする上で詳述すると、私はで次のように追加してみましたhtmlの始めと終わり。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Title</title>
</head>
<body>
...
</body>
</html>
私は、これは有効なHTML hereし、得られた電子メールの本文には類似していた検証。
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Quantity Price
0 900 20.0
1 500 21.0
'[text、html]'を '[html、text]'に変更したときの出力は何ですか?私が尋ねる理由は、dfが問題なのか、それともyagmailなのかをチェックすることです。残念ながら、私は多くの試行錯誤を先に見ています! – MattR
@MattR提案していただきありがとうございます。最後の行を 'yag.send('[email protected] '、"これはリマインダコール "+ time.strftime("%c ")、[html])'のコードに置き換えました。結果の電子メール本文には一連の改行が含まれていて、最後にhtmlテーブル – CurryPy
がありました.Yagmailの著者はここに....間違いなくバグです。私は5つの '
'タグが追加されているのがわかります。私は無知だ。 – PascalVKooten