こんにちは今回は前回に引き続きpythonでHTMLメールの送り方を説明します。今回もほぼコピペでOKなのですぐに試せると思います。前回のテキストメールの送り方は下記を参考にして下さい。
では、さっそくソースコードから
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText smtp_host = 'xxxxxxx.xx.xx' #ホストを指定 smtp_port = 587 smtp_account_id = 'xxxxx@xxxxxxx.xx.xx' #ユーザー名を指定 smtp_account_pass = 'xxxxxxxx' #パスワードを入力 from_mail = "xxxxx@xxxxxxx.xx.xx" # 送信元メールアドレス to_mail = "yyyyyy@xxxxxxx.xx.xx" # 送信先メールアドレス msg = MIMEMultipart('alternative') msg['Subject'] = "タイトル" #件名を入力 msg['From'] = from_mail msg['To'] = to_mail text = "送信テストです。.nマルチパートで送っています。.nどうですか?" html = """ <html> <head></head> <body> <p style='font-size:16.0pt;font-family:游ゴシック'>送信テストです。</p> <p>マルチパートで送っています。</p> <p>どうですか?</p> </body> </html> """ part1 = MIMEText(text, 'plain') part2 = MIMEText(html, 'html') msg.attach(part1) msg.attach(part2) server = smtplib.SMTP(smtp_host, smtp_port, timeout=10) server.login(smtp_account_id, smtp_account_pass) server.sendmail(from_mail, to_mail, msg.as_string()) server.quit()
解説
1~3行目でモジュールを読み込みます。標準のモジュールなので別途インストールは必要ありません
5~8行目でホスト、ポート、ユーザー、パスワードを設定します。
10~11行目で送信元と送信先を設定します。
14行目で件名を入力します。
この辺りは前回のと同じですので、そちらも参考にして下さい。
次に18行目で本文のテキストパートを入力します。
19~28行目では本文のHTMLパートを入力します。
HTMLメールの場合は上記のように本文はテキストパートとHTMLパートの二つを作成する、マルチパートという送り方が一般です。マルチパートの説明は下記に記載します。
ここまで入力出来たら後は実行するだけです。
届きました。
マルチパートとは?
ではなぜ本文をテキストとHTMLの二つを作る必要があるのでしょうか?
理由は簡単です。メールソフトによってはHTMLメールは見れない場合があるからです。
メールの仕組み上送信側からは受信側がHTMLメールを表示出来るか出来ないかは判断できません。ですので、テキストとHTMLを二つの本文を送付し受信側に選択してもらう方法をとっています。受信側はHTMLを表示出来るならHTMLで表示。出来ない場合はテキストで表示する。といった選択をします。
以上がマルチパートの説明です。
業務支援ツールの製作を致します
株式会社FROMATIONではお客様の用途に合わせたオリジナルの業務支援(自動化)ツールを製作しております。
【毎日の10分を1秒に】
をコンセプトに、お客様の用途に特化したピンポイントな自動化ツールをご提供致します。「大手のRPAソフトを導入するまでもない日常ちょっとした手間」「毎日のルーチンワーク」など、簡単なツールで驚くほど業務が改善する場合もあります。
【毎日こんな作業で困ってるんだけど】
【こんなツール作れないかな】
など企業様も個人様もお気軽にお問い合わせください。
出来ることの一例
- webからのデータ収集
- Excelと連携したデータ処理
- メールの受信と自動返信
- データの自動アップロード
- 画像や音声データの編集・変換処
- 各種SNSの自動処理
上記以外にも出来ることは多数ありますので、お気軽にお問合せ下さい。