方針転換したツールの作成。
もろもろ不安があったので、休みにも関わらずいろいろやってみた。
まずは、Excel(VBA)とGASの連携。
最初は、メールのスケルトンと送信先のメールアドレスが記入されたExcelファイルをGASで読めばいいやと思っていたのだけど、Excelファイルを読むにはDrive APIとか云うのを使わないといけないらしい。
設定がめんどうくさいので、他の方法を探してみる。
ExcelがだめならCSVがあるじゃないかと思い、VBAでCSVにして吐き出した。
GASでCSVを読もうとすると、今度はパースでエラーになる。
自前でパーサーを作るのもナニなので断念。
そもそもこの方針転換もダメかと思うものの、別の方法も思いつかない。
ここまでは、データを渡してGAS側でメールを編集して送信しようと思っていたのだけど、VBA側でメールを作ってしまい、GAS側は送るだけにすれば、プレーンテキストで渡せることに気が付いた。
流石に、テキストだったらGASでも読めるだろうと思い、テストコードを書いて実験してみると、読み込むことが出来た。
■
さて、長い前振りが終わってここからが本題。
取り敢えずメール送信はできるようになったので、送信元を自分でなくメール送信専用のアドレスに変えようとした。
ネットを見ると、まずそのアドレス(メール送信専用)をエイリアス登録しろと書いてある。
そのあと、メールのオプション設定で"From"欄にそのアドレスを記述するように書いてあった。
その通り、やってみても発信元のアドレスは自分のアドレス。
おかしいなと思いながら、試しに他のオプション(送信者名やCCのアドレス、返送先アドレスなど)を設定してみると、それらはちゃんと設定できている。
なんでだろうと思いながら、ググってみても、Fromが設定できないなんで記述は見つからない。
■
更にググっているとメール送信を提供するクラスが2つ(GmailApp.sendEmailとMailApp.sendEmail)あることがわかった。
そして、Fromが使えるのはGmailAppだけらしい。
たまたま最初に拾ってきたコードがMailAppだったために、Fromが設定できなかった模様。
GmailAppに変えるとすんなり設定が反映された。
なんだよ、だれもGmailApp.sendEmailとMailApp.sendEmailがあるなんて教えてくれなかったぞ。
そもそも、同じようなクラスが2つあるなんて想像もしなかった。
解決するのに1日掛かってしまったよ。
--
いちじ