質問編集履歴
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
|
-
|
13
|
+
ソースコード13, 15行目の変数pdf_path, drawing_pathのinputで入力したものがそのまま45行目のattachmentsに入るようにしたいです。
|
26
|
-
同じフォルダ内のファイルの名前でないとエラーが出てしまうため質問させていただきました。
|
27
14
|
|
28
|
-
path='pdf_path' のような感じにしたいです。
|
29
|
-
この部分のコードがわからないため教えていただきたいです。
|
30
|
-
また、添付ファイルを2つ送信することは可能でしょうか?
|
31
|
-
|
32
|
-
|
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("添付する図面
|
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
|
-
|
74
|
+
part.set_payload(open(file_path, "rb").read())
|
78
|
-
pdf_file = MIMEApplication(
|
79
|
-
f.read(),
|
80
|
-
|
75
|
+
encoders.encode_base64(part)
|
81
|
-
)
|
82
|
-
pd
|
76
|
+
part.add_header("Content-Disposition", "attachment; filename = {file_path}")
|
83
|
-
msg.attach(p
|
77
|
+
msg.attach(part)
|
84
78
|
|
85
79
|
#メール送信処理
|
86
80
|
smtpobj = smtplib.SMTP_SSL('smtp.gmail.com', 465, timeout = 10)
|
1
ソースコードの追加
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
|