添付ファイルの設定
メール送信は実装できたのですが、添付ファイルのやり方が分かりません。
以下URLに「パラメータ名にfile.txtを指定します」とありますが、うまくいきません。
フルパスを記述するのでしょうか?
具体的な記述例があると助かります。
https://developers.worksmobile.com/jp/document/1004004?lang=ja投稿に新しいコメントが追加されましたら通知を送信します。
メール送信は実装できたのですが、添付ファイルのやり方が分かりません。
以下URLに「パラメータ名にfile.txtを指定します」とありますが、うまくいきません。
フルパスを記述するのでしょうか?
具体的な記述例があると助かります。
https://developers.worksmobile.com/jp/document/1004004?lang=ja
コメント5
업데이트 된 답글입니다.
佐藤正宗
https://qiita.com/kunihiros/items/ce3a3677113426d6b75f
添付ファイルつけたメール送信のcurlのサンプルコード貼っておきます。
curl --location --request POST 'https://apis.worksmobile.com/r/APIID/mail/v2/sendMail' \
--header 'consumerKey: consumerKey' \
--header 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Cookie: WORKS_RE_LOC=jp1; WORKS_TE_LOC=jp1' \
--form 'to="xxxx@xxxx.com"' \
--form 'subject="postman test mail"' \
--form 'TEST_PDF.pdf=@"/C:/Users/xxxxxxx/TEST/TEST_PDF.pdf"'
2021.12.09
업데이트 된 답글입니다.
miyoshiya 投稿者
返答いただきありがとうございます。
python、APIともに初心者のため見当違いになっていたら申し訳ございません。
メールは何とか送信できたのですが、添付の方法が分からなくて・・・
「添付ファイル名」に Multipart でどう値を渡せばいいのか・・・
いただいた内容でもう少し頑張ってみようと思います。
https://developers.worksmobile.com/jp/document/1004004?lang=ja
パラメータ:添付ファイル名
タイプ:Multipart
説明:UTF-8でエンコードした添付ファイル名
・「添付ファイル名」は、メール送信時にアップロードするファイル名を意味します。
例)添付ファイル名がfile.txtの場合、パラメータ名にfile.txtを指定します。
/////////////////////////////////////////////////////////////////////////////////////////
API_ID = xxxxx
headers = {'consumerKey': 'xxxxx', 'Authorization': 'Bearer xxxxx'}
url = 'https://apis.worksmobile.com/r/{0}/mail/v2/sendMail'.format(API_ID)
filepath = r"C:\Users\xxxxx\Desktop\テスト.txt
filename = os.path.basename(filepath)
payload = {
'Content-Type': 'multipart/form-data',
'boundary': '----WebKitForm',
'charset': 'UTF-8',
'to': 'hoge@hoge.co.jp,
'subject': 'テスト送信',
'text': 'テスト送信しました。',
'添付ファイル名': ??????????? ← ここの書き方がわかりません。
}
r = requests.post(url, headers=headers, data=payload)
/////////////////////////////////////////////////////////////////////////////////////////
2021.12.09
업데이트 된 답글입니다.
佐藤正宗
import requests
url = "{{API_URL}}/r/{{API_ID}}/mail/v2/sendMail"
payload={'to': 'xxxxx@xxxx.com',
'subject': 'postman test mail'}
files=[
('TEST_PDF.pdf',('TEST_PDF.pdf',open('/C:/Users/xxxxxxxx/TEST/TEST_PDF.pdf','rb'),'application/pdf'))
]
headers = {
'consumerKey': '{{SERVICE_CONSUMER_KEY}}',
'Authorization': 'Bearer xxxxxxxxxxxxxxxxx='
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
2021.12.09
업데이트 된 답글입니다.
miyoshiya 投稿者
ありがとうございます!
できました。
ただ、「UTF-8でエンコードした添付ファイル名」とあるためなのか、日本語のファイル名だと文字化けするようです。
ファイル自体は添付できていますが。
もう少しやってみようと思います。
大変たすかりました。
2021.12.09
업데이트 된 답글입니다.
miyoshiya 投稿者
本当にありがとうございました!
https://note.nkmk.me/python-urllib-parse-quote-unquote/
//////////////////////////////////////////////////////////////
import urllib.parse
filepath = r"C:\Users\xxxxxxxxx\Desktop\テスト_PDF.pdf"
filename = os.path.basename(filepath)
filename = urllib.parse.quote(filename)
2021.12.09
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。