Gmailにやられる(GmailAppとMailApp)

方針転換したツールの作成。 もろもろ不安があったので、休みにも関わらずいろいろやってみた。 まずは、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日掛かってしまったよ。
--
はれ いちじ あめ

No comments: