【问题标题】:How do I make a response email be from the person submitting (Google App Script)如何让提交人回复电子邮件(Google App Script)
【发布时间】:2014-05-15 17:31:48
【问题描述】:

我有一个提交到电子表格的 Google 表单。然后我编写了这段代码,它会发送一封包含结果的电子邮件。谁能告诉我如何让提交表单的人提交电子邮件?

函数初始化() {

var triggers = ScriptApp.getScriptTriggers();

for (var i in triggers) {
    ScriptApp.deleteTrigger(triggers[i]);
}

ScriptApp.newTrigger("SendConfirmationMail")
    .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
    .onFormSubmit()
    .create();

} 函数发送确认邮件(e){

try {
    var ss, cc, subject, columns;
    var message, value, textbody, sendername, sender;

    // This is my email address and I will be in the CC
    cc = e.namedValues["Username"].toString();

    // This will show up as the sender's name
    sendername = e.namedValues["Name"].toString();

    subject = "Ticket Submitted";

    message = "We have received your details.<br>Thanks!<br><br>";

    ss = SpreadsheetApp.getActiveSheet();
    columns = ss.getRange(1, 1, 1, ss.getLastColumn()).getValues()[0];

    // This is the submitter's email address
    sender = e.namedValues["Username"].toString();

    // Only include form values that are not blank
    for ( var keys in columns ) {
        var key = columns[keys];
        if ( e.namedValues[key] ) {
            message += key + ' :: '+ e.namedValues[key] + "<br />"; 
        }
    }
    textbody = message.replace("<br>", "\n");
    GmailApp.sendEmail(sender, subject, textbody, 
                        {cc: cc, name: sendername, htmlBody: message});
} catch (e) {
    Logger.log(e.toString());
}

}

【问题讨论】:

    标签: javascript forms google-apps-script


    【解决方案1】:

    这是不可能的,也不应该是。您想在未经他人同意的情况下冒充他人。

    不幸的是,过时的电子邮件系统允许这样做,因此使垃圾邮件发送者和网络钓鱼诈骗的活动变得更容易。但是谷歌和其他互联网公司努力阻止和过滤这种电子邮件。

    归根结底,除非它是您 Gmail 中的授权帐户,否则您将无法以其他人身份从 Google 应用发送电子邮件。

    你能做的最好的就是设置reply-to地址。

    【讨论】:

    • 我想你误会了我。我想设置表单,以便当有人提交时,它来自他们的电子邮件地址。
    • 不,我没有误解你。您希望您发送的电子邮件(使用脚本)的“发件人地址”是发送表单的人,而这正是我所回答的。
    • 但是如果表单默认将“发件人”地址添加到表单中,并且我收到他们的地址作为表单的一部分,那么在 Google 眼中这有什么不同?无论如何,我仍然收到他们的电子邮件地址。我正在尝试让表单向 Assembla.com 提交票证,该票证将获取他们的电子邮件地址,以便可以将回复发送给他们。这是合法的,我们使用 Gmail 作为客户端,因此唯一可以访问该表单的人是员工。如果不编写一个基本上可以做到这一点的 Java 应用程序,我就无法做到这一点?
    • 知道别人的邮箱是一回事,能以别人的身份发邮件是另一回事。此外,如果您的用例是“合法的”,则不相关,这种“模拟”功能是错误的。但是,如果您在 Google Apps 域中(刚才解释为您的默认接收地址),并且您是域管理员,那么您可以模拟 您的域 用户。查找它,如果您有疑问,请发布另一个问题,提及该问题和您的具体问题。
    猜你喜欢
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2022-11-02
    • 2021-09-24
    • 1970-01-01
    相关资源
    最近更新 更多