2017-10-03 3 views
0

私はそれが初めてstackoverflowに関するクエリであることを許しています。 Googleが提供しているサンプルスクリプト「Transformation Gallery」を使用する予定です。 これは起動して実行するのにはまっすぐですが、スプレッドシートから取得した電子メールアドレスの値を切り捨てることがわかりました。「MailApp.sendEmail」を使用したGoogleスクリプトは、Googleシートから取得したメールアドレスを切り捨てます。

たとえば、リクエスタは、特定の休暇を要求し、フォームに記入し、承認者にリクエストを発します。承認者のメールは、電子メールの命名規則に使用する形式が[email protected]の形式で返されます。

何が起こるのかは、[email protected]に切り捨てられ、バウンスすることです。しかし、マネージャがリクエストを承認すると、リクエスタに行く返信メールはうまくいくので、MailApp.sendEmailルーチンは正常に動作しますが、そうではありません。このように見えるの承認に基づいて要求者に返信を送る

d.manager_email = manager_email 

message = Utils.processTemplate(SETTINGS.PENDING_MANAGER_EMAIL, d); 
subject = Utils.processTemplate(SETTINGS.PENDING_MANAGER_EMAIL_SUBJECT, d); 

MailApp.sendEmail(manager_email,subject,"",{ htmlBody: message }); 

setRowData(_sheet, d); 

と作業1:私はこの機能を伝えることができるものから、

は、管理者の電子メールフィールドから値を管理し

var approveByKey = function(k, user) { 
var d = _getDataByKey(k); 
d.state = APPROVED_STATE; 
d.actor = user; 

var message = Utils.processTemplate(SETTINGS.USER_APPROVAL_EMAIL, d); 
var subject = Utils.processTemplate(SETTINGS.USER_APPROVAL_EMAIL_SUBJECT, d); 
MailApp.sendEmail(d.emailAddress,subject,"",{ htmlBody: message }); 

if(SETTINGS.SEND_APPROVAL_NOTICE_EMAIL == 1) { 
    var message = Utils.processTemplate(SETTINGS.APPROVAL_NOTICE_EMAIL, d); 
    var subject = Utils.processTemplate(SETTINGS.APPROVAL_NOTICE_EMAIL_SUBJECT, d); 
    MailApp.sendEmail(SETTINGS.APPROVAL_NOTICE_EMAIL_TO, subject, "",{ htmlBody: message }); 
} 

最初の例が 'manager_email'から取得した値を切り捨てる理由はわかりません。どんなアドバイスも大歓迎です。

おかげ レイ

上記の例から

答えて

0

は、違いがSETTINGS.APPROVAL_NOTICE_EMAIL_TOが働いているd.emailAddress & d.manager_email & SETTINGS.APPROVAL_NOTICE_EMAIL_TO & d.emailAddress場合、それらのいずれかに変更された場合、それが動作するはずです。それが問題でない場合は、より多くのコードは、電子メールが投稿されたコードの部分の前に変更された線に沿ってどこかのように必要になる、ということ[その他

// Assuming this variable assignment is somewhere in the method of the top example 
var d = _getDataByKey(k); 

// Change the `manager_email` to d.emailAddress or to SETTINGS.APPROVAL_NOTICE_EMAIL_TO 
MailApp.sendEmail(d.emailAddress, subject,"",{ htmlBody: message }); 

。どこでもSETTINGSまたはdが設定されています

+0

これは正しい方向に私を指摘しました。 Google Appsの別の部分では、スクリプトはvar 'manager_email'にいくつかの書式設定を適用します。私はそれを削除し、現在は期待どおりに動作しています。ありがとうございました。 –

-1

私は、この例を使用して、私が取り組んでいるアプリケーションの機能の80%を提供しています。

電子メールアドレスを変更するコードはこの行です。

manager_email = d[SETTINGS.MANAGERS_EMAIL_COLUMN_NAME].match(EMAIL_REGEX); 

私はこれを変更しなければならなかった:私は「.match(var EMAIL_REGEX = new RegExp("[a-zA-Z+0-9\.-][email protected][a-zA-Z0-9\.-]+", 'i');」 は私のメールアドレスで素晴らしいプレーすることができませんでしたmanager_email = d[SETTINGS.MANAGERS_EMAIL_COLUMN_NAME] ;

関連する問題