いつも大変お世話になっております。
下記URLの内容を参考にsendgridでのメール送信ができるようになり、
次にkintone側にアップロードしているファイルを添付してメール送信を行いたいと考えているのですが、データの扱い方が理解できない状況です。
sendMail: function(to, cc, bcc, mailFrom, subject, text, html, callback, errback) {
var data = {};
data.to = to;
data.from = mailFrom;
data.subject = subject;
data.text = text;
if (html) data.html = html;
var formData = createFormData(data);
引数にkintoneのファイルをもってきて、data構造内にファイルデータをどのような形式で格納すればよいか
検討がついていない状況です。
ご教示ください。よろしくお願い致します。
[ttps://cybozudev.zendesk.com/hc/ja/articles/206584633](/hc/ja/articles/206584633)
記載リンクのSendGridプラグインはAPI v2が利用されていますが、v2は添付ファイルだと記述方法がそもそもテキストだけの場合とは異なってきて、Content-Typeがテキストだけの時のapplication/x-www-form-urlencoded形式ではなくて、multipart/form-data形式での記述が必要になってきます。これはドキュメントにあるcURLコマンドのコマンドオプションを見るとわかりやすいです。そして、kintone[.plugin.app].proxy() や kintone[.plugin.app].proxy.upload() では中身がテキストのファイル送信はいけると思いますが、そうでない場合はちょっと難しいです。この辺( 1 , 2 )も参考にして頂ければ。
あと、v3ですが、この辺のドキュメントを見ていると、v3だとbase64エンコードした値をjson形式で渡す方式のようですので、kintone.proxy() で対応できるのではないかと思います。v3の cURLコマンドのサンプル には添付の例がありませんが、
{ "attachments": [{ "content": "[BASE64 encoded content block here]", "type": "jpg", "name": "example\_file", "filename": "example\_file.jpg", "disposition": "inline", "content\_id": "[THE CONTENT ID OF YOUR FILE]" } ] }
といったattachmentsプロパティを追加すると通せるかと思いますので、希望がつながってきそうです。
Ryu Yamashita様
ご返信ありがとうございます。
V3の情報を見落としておりました。上記情報から再度構築を行ってみます。
理解できない箇所がございましたら再度投稿させていただくかもしれませんが、よろしくお願い致します。
私も実はv3の仕様を確認中だったので、まずcURLで試したところ
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'Authorization: Bearer [api_token]' \
--header 'Content-Type: application/json' \
--data '{"personalizations": [{"to": [{"email": "test@test.com"}]}],"from": {"email": "test@test.com"},"subject": "Hello, World!","content": [{"type": "text/plain", "value": "Heya!"}],"attachments": [{ "content": "[base64encoded_data]", "type": "jpg", "name": "example_file", "filename": "example_file.jpg", "disposition": "inline", "content_id": "1" } ]}'
で、API通って添付ファイルも受信できていましたので、v3では kintone.proxy() での対応が可能そうです。残る課題はkintoneの添付ファイルをbase64エンコードするところですが、これはググれば出てきそうかなぁと考えていたところです。
V3でメール送信ができ、ファイル添付までできるようになりました。
ただ、ファイルの中身がまったくでてこなく、kintoneの添付ファイルからBlob型に変換、Base64に変換するところが
まちがっているのかなと考えております。
Base64の変換を再度見直しをしてみます。取り急ぎ進捗のご報告と致します。