質問編集履歴

2

質問内容の変更と追加

2023/06/08 02:15

投稿

nt1
nt1

スコア2

test CHANGED
File without changes
test CHANGED
@@ -6,62 +6,54 @@
6
6
  pythonで他部門に完成した図面情報のpdfなどを添付して送信するシステムを作っています。
7
7
  同じフォルダ内にいろいろな種類のpdfが保存されているため毎回ソースコードを編集するのは手間がかかるため、
8
8
  inputで入力する際にそのファイルのパスを入力して少しでも手間を減らしたいなと考えています。
9
+ ここでいうinputで入力するものは
10
+ "C:\Users\Desktop\python\a.pdf"
11
+ のようにそのファイルでShift右クリックからパスのコピーでパスを取得したものを指しています。
9
12
 
10
- ソースコードの
11
- pdf_path = input("添付するpdfファイルのパスをコピペで入力してください")
12
- print(pdf_path, "が設定されました")
13
- drawing_path = input("添付する図面.pdfのパスをコピペで入力してください")
14
- print(drawing_path, "が設定されました")
15
- ここでパスを入力し、
16
- #添付ファイル設定
17
- path = ''
18
- with open(path, 'rb') as f:
19
- pdf_file = MIMEApplication(
20
- f.read(),
21
- Name = basename(path)
22
- )
23
- pdf_file['Content-Disposition'] = f'attachment; filename = "{basename(path)}"'
24
- msg.attach(pdf_file)
25
- 、添付ファイル設定のpath='' のところでinputの変数pdf_pathdrawing_pathなどできいなと考えているのですが、
13
+ ソースコード13, 15行目の変数pdf_path, drawing_pathのinputものがそのまま45行目のattachmentsに入るようにしたいです
26
- 同じフォルダ内のファイルの名前でないとエラーが出てしまうため質問させていただきました。
27
14
 
28
- path='pdf_path' のような感じにしたいです。
29
- この部分のコードがわからないため教えていただきたいです。
30
- また、添付ファイルを2つ送信することは可能でしょうか?
31
-
32
- python勉強中で詳しくないためよろしくお願いします。
15
+ わからないため、ご回答よろしくお願いします。
33
16
 
34
17
  ### 発生している問題・エラーメッセージ
35
18
 
36
19
  ```
37
- エラメッセ
20
+ スコド45行目に現時点では同じフォルダ内のpdfを指定しているが、ソースコード13, 15行目の変数pdf_path, drawing_pathのinputで入力したものがそのまま45行目のattachmentsに入るようにしたいが、わからない。
38
21
  ```
39
22
 
40
- ```ここに言語を入力
23
+ ```python
41
- コード
42
- ### 該当のソースコード
43
24
  import smtplib
44
25
  from email.mime.text import MIMEText
45
26
  from email.mime.application import MIMEApplication
46
27
  from email.mime.multipart import MIMEMultipart
28
+ from email import encoders
29
+ from email.mime.base import MIMEBase
47
30
  from os.path import basename
48
31
  from email.utils import formatdate
49
32
 
50
33
  #入力用
51
34
  number = input("図面番号を入力してください")
52
35
  print(number, "が入力されました")
53
- pdf_path = input("添付するpdfファイルのパスをコピペで入力してください")
36
+ pdf_path = input("添付する書類pdfファイルのパスをコピペで入力してください")
54
37
  print(pdf_path, "が設定されました")
55
- drawing_path = input("添付する図面.pdfのパスをコピペで入力してください")
38
+ drawing_path = input("添付する図面pdfのパスをコピペで入力してください")
56
39
  print(drawing_path, "が設定されました")
57
40
 
58
41
  #メール設定など
59
42
  FROM = '@gmail.com' #ここにgmailアカウント
60
43
  PASSWORD = '' #ここにパスワード
61
- TO = #メールアドレス
44
+ TO = '' #メールアドレス
62
- CC = '' #CCメールアドレス
45
+ CC = [''] #CCメールアドレス
63
46
  SUBJECT = '' #メールの件名
64
- BODY = '' #本文
47
+ BODY = ''+'\n'+\
48
+ '\n'+\
49
+ 'お疲れ様です。'+'\n'+\
50
+ '以下の図面を出図いたします。'+'\n'+\
51
+ '\n'+\
52
+ str(number)+'\n'+\
53
+ '\n'+\
54
+ 'よろしくお願いいたします。'+'\n'+\
55
+ '\n'+\
56
+ '自動送信'
65
57
 
66
58
  #メール内容処理
67
59
  msg = MIMEMultipart()
@@ -72,15 +64,17 @@
72
64
  msg['Date'] = formatdate()
73
65
  msg.attach(MIMEText(BODY))
74
66
 
75
- #添付ファイル設定
67
+ #添付ファイルのリスト
68
+ attachments = ["file1.txt", "file2.txt", "a.pdf"]
69
+
70
+ #添付ファイルについて
76
- path = ''
71
+ for file_path in attachments:
72
+ #MIMEBaseオブジェクトの作成
73
+ part = MIMEBase("application", "octet-stream")
77
- with open(path, 'rb') as f:
74
+ part.set_payload(open(file_path, "rb").read())
78
- pdf_file = MIMEApplication(
79
- f.read(),
80
- Name = basename(path)
75
+ encoders.encode_base64(part)
81
- )
82
- pdf_file['Content-Disposition'] = f'attachment; filename = "{basename(path)}"'
76
+ part.add_header("Content-Disposition", "attachment; filename = {file_path}")
83
- msg.attach(pdf_file)
77
+ msg.attach(part)
84
78
 
85
79
  #メール送信処理
86
80
  smtpobj = smtplib.SMTP_SSL('smtp.gmail.com', 465, timeout = 10)

1

ソースコードの追加

2023/06/06 08:00

投稿

nt1
nt1

スコア2

test CHANGED
File without changes
test CHANGED
@@ -37,6 +37,8 @@
37
37
  エラーメッセージ
38
38
  ```
39
39
 
40
+ ```ここに言語を入力
41
+ コード
40
42
  ### 該当のソースコード
41
43
  import smtplib
42
44
  from email.mime.text import MIMEText