さくらインターネットで作成した自分のメールアドレスから、宛先ごとに内容をカスタマイズしながら一斉送信したい場合のプログラムです。
コード全体
csvファイル「連絡先リスト_テスト.csv」から以下のようなリストを読み込みます。
その後、メール本文中の宛名にリスト中の氏名を使用した定型文を各連絡先に送信します。

import smtplib # メールサーバ接続用
from email import message # メール作成用
import pandas as pd
def create_main_text(name):
'''与えられた宛名にしたメール本文を作成して返す'''
main_text = rf'''{name}様
よろしくお願いします
'''
return main_text
# サーバー接続
smpt_host = '任意の.sakura.ne.jp'
mail_address = '自分のアドレス@なんたら' #送信元メールアドレス
password = '送信元メールアドレスのパスワード' # パスワード
smtpobj = smtplib.SMTP(smpt_host, 587) # SMTPサーバー ポート587に接続
smtpobj.starttls()
smtpobj.login(mail_address, password) # ログイン
# 送信先リストの読み込み
df = pd.read_csv('連絡先リスト_テスト.csv',encoding='utf-8_sig')
for i in range(len(df)):
# メール文設定
msg = message.EmailMessage()
name = df.at[i,'氏名']
main_text = create_main_text(name)
msg.set_content(main_text) #本文
msg['Subject'] = '件名' #件名を入力
msg['From'] = mail_address
msg['To'] = df.at[i,'連絡先']
# メールの送信
try:
result = smtpobj.send_message(msg)
except:
print(f'送信失敗:{name}')
# 接続の終了
smtpobj.quit()
補足
ライブラリsmtplibは、メールサーバに接続するために使用している標準ライブラリです。
ライブラリemailは、メール文を作成するために使用している標準ライブラリです。
コメント