実現したいこと
他部門に完成した図面のpdf送信の簡略化
前提
pythonで他部門に完成した図面情報のpdfなどを添付して送信するシステムを作っています。
同じフォルダ内にいろいろな種類のpdfが保存されているため毎回ソースコードを編集するのは手間がかかるため、
inputで入力する際にそのファイルのパスを入力して少しでも手間を減らしたいなと考えています。
ソースコードの
pdf_path = input("添付するpdfファイルのパスをコピペで入力してください")
print(pdf_path, "が設定されました")
drawing_path = input("添付する図面.pdfのパスをコピペで入力してください")
print(drawing_path, "が設定されました")
ここでパスを入力し、
#添付ファイル設定
path = ''
with open(path, 'rb') as f:
pdf_file = MIMEApplication(
f.read(),
Name = basename(path)
)
pdf_file['Content-Disposition'] = f'attachment; filename = "{basename(path)}"'
msg.attach(pdf_file)
この、添付ファイル設定のpath='' のところでinputの変数をpdf_pathやdrawing_pathなどで出力できたらいいなと考えているのですが、
同じフォルダ内のファイルの名前でないとエラーが出てしまうため質問させていただきました。
path='pdf_path' のような感じにしたいです。
この部分のコードがわからないため教えていただきたいです。
また、添付ファイルを2つ送信することは可能でしょうか?
python勉強中で詳しくないためよろしくお願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from os.path import basename
from email.utils import formatdate
#入力用
number = input("図面番号を入力してください")
print(number, "が入力されました")
pdf_path = input("添付するpdfファイルのパスをコピペで入力してください")
print(pdf_path, "が設定されました")
drawing_path = input("添付する図面.pdfのパスをコピペで入力してください")
print(drawing_path, "が設定されました")
#メール設定など
FROM = '@gmail.com' #ここにgmailアカウント
PASSWORD = '' #ここにパスワード
TO = #メールアドレス
CC = '' #CCメールアドレス
SUBJECT = '' #メールの件名
BODY = '' #本文
#メール内容処理
msg = MIMEMultipart()
msg['Subject'] = SUBJECT
msg['From'] = FROM
msg['To'] = TO
msg['Cc'] = ','.join(CC)
msg['Date'] = formatdate()
msg.attach(MIMEText(BODY))
#添付ファイル設定
path = ''
with open(path, 'rb') as f:
pdf_file = MIMEApplication(
f.read(),
Name = basename(path)
)
pdf_file['Content-Disposition'] = f'attachment; filename = "{basename(path)}"'
msg.attach(pdf_file)
#メール送信処理
smtpobj = smtplib.SMTP_SSL('smtp.gmail.com', 465, timeout = 10)
smtpobj.ehlo()
smtpobj.login(FROM, PASSWORD)
smtpobj.sendmail(FROM, TO, msg.as_string())
smtpobj.close()
print("メールを送信しました")
試したこと
いろんなサイトを見たのですが、みなさん基本的に.txtや.pdfなど直接パスを入力していてinputでパスを入力するようなプログラムが見つかりませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

0 コメント