実現したいこと
他部門に完成した図面のpdf送信の簡略化
前提
pythonで他部門に完成した図面情報のpdfなどを添付して送信するシステムを作っています。
同じフォルダ内にいろいろな種類のpdfが保存されているため毎回ソースコードを編集するのは手間がかかるため、
inputで入力する際にそのファイルのパスを入力して少しでも手間を減らしたいなと考えています。
ここでいうinputで入力するものは
"C:\Users\Desktop\python\a.pdf"
のようにそのファイルでShift右クリックからパスのコピーでパスを取得したものを指しています。
ソースコード13, 15行目の変数pdf_path, drawing_pathのinputで入力したものがそのまま45行目のattachmentsに入るようにしたいです。
わからないため、ご回答よろしくお願いします。
発生している問題・エラーメッセージ
ソースコード45行目に現時点では同じフォルダ内のpdfを指定しているが、ソースコード13, 15行目の変数pdf_path, drawing_pathのinputで入力したものがそのまま45行目のattachmentsに入るようにしたいが、わからない。
python
1import smtplib 2from email.mime.text import MIMEText 3from email.mime.application import MIMEApplication 4from email.mime.multipart import MIMEMultipart 5from email import encoders 6from email.mime.base import MIMEBase 7from os.path import basename 8from email.utils import formatdate 9 10#入力用 11number = input("図面番号を入力してください") 12print(number, "が入力されました") 13pdf_path = input("添付する書類pdfファイルのパスをコピペで入力してください") 14print(pdf_path, "が設定されました") 15drawing_path = input("添付する図面pdfのパスをコピペで入力してください") 16print(drawing_path, "が設定されました") 17 18#メール設定など 19FROM = '@gmail.com' #ここにgmailアカウント 20PASSWORD = '' #ここにパスワード 21TO = '' #メールアドレス 22CC = [''] #CCメールアドレス 23SUBJECT = '' #メールの件名 24BODY = ''+'\n'+\ 25 '\n'+\ 26 'お疲れ様です。'+'\n'+\ 27 '以下の図面を出図いたします。'+'\n'+\ 28 '\n'+\ 29 str(number)+'\n'+\ 30 '\n'+\ 31 'よろしくお願いいたします。'+'\n'+\ 32 '\n'+\ 33 '自動送信' 34 35#メール内容処理 36msg = MIMEMultipart() 37msg['Subject'] = SUBJECT 38msg['From'] = FROM 39msg['To'] = TO 40msg['Cc'] = ','.join(CC) 41msg['Date'] = formatdate() 42msg.attach(MIMEText(BODY)) 43 44#添付ファイルのリスト 45attachments = ["file1.txt", "file2.txt", "a.pdf"] 46 47#添付ファイルについて 48for file_path in attachments: 49 #MIMEBaseオブジェクトの作成 50 part = MIMEBase("application", "octet-stream") 51 part.set_payload(open(file_path, "rb").read()) 52 encoders.encode_base64(part) 53 part.add_header("Content-Disposition", "attachment; filename = {file_path}") 54 msg.attach(part) 55 56#メール送信処理 57smtpobj = smtplib.SMTP_SSL('smtp.gmail.com', 465, timeout = 10) 58smtpobj.ehlo() 59smtpobj.login(FROM, PASSWORD) 60smtpobj.sendmail(FROM, TO, msg.as_string()) 61smtpobj.close() 62 63print("メールを送信しました") 64 65 66### 試したこと 67 68いろんなサイトを見たのですが、みなさん基本的に.txtや.pdfなど直接パスを入力していてinputでパスを入力するようなプログラムが見つかりませんでした。 69 70### 補足情報(FW/ツールのバージョンなど) 71 72ここにより詳細な情報を記載してください。
