Javascript 如何让提交人回复电子邮件(谷歌应用程序脚本)

Javascript 如何让提交人回复电子邮件(谷歌应用程序脚本),javascript,forms,google-apps-script,Javascript,Forms,Google Apps Script,我有一个提交到电子表格的谷歌表格。然后我写了这段代码,它发送了一封带有结果的电子邮件。谁能告诉我如何让提交表格的人提交电子邮件 函数初始化(){ } 功能SendConfirmationMail(电子邮件){ 试试看{ 变量ss、cc、主题、列; var消息、值、文本体、发件人名称、发件人; //这是我的电子邮件地址,我将在抄送 cc=e.namedValues[“Username”].toString(); //这将显示为发件人的名称 sendername=e.namedValues[“Nam

我有一个提交到电子表格的谷歌表格。然后我写了这段代码,它发送了一封带有结果的电子邮件。谁能告诉我如何让提交表格的人提交电子邮件

函数初始化(){

} 功能SendConfirmationMail(电子邮件){

试试看{
变量ss、cc、主题、列;
var消息、值、文本体、发件人名称、发件人;
//这是我的电子邮件地址,我将在抄送
cc=e.namedValues[“Username”].toString();
//这将显示为发件人的名称
sendername=e.namedValues[“Name”].toString();
主题=“已提交票证”;
message=“我们已收到您的详细信息。
谢谢!

”; ss=电子表格app.getActiveSheet(); columns=ss.getRange(1,1,1,ss.getLastColumn()).getValues()[0]; //这是提交者的电子邮件地址 sender=e.namedValues[“Username”].toString(); //仅包括非空的表单值 for(列中的变量键){ var key=列[键]; 如果(例如,名称值[键]){ message+=key+::“+e.namedValues[key]+”
”; } } textbody=message.replace(“
”,“\n”); GmailApp.sendmail(发件人、主题、正文、, {cc:cc,name:sendername,htmlBody:message}); }捕获(e){ Logger.log(例如toString()); }

}这是不可能的,也不应该。你想在没有别人同意的情况下模仿别人

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

底线是,除非你的Gmail中有一个授权帐户,否则你将无法通过谷歌应用程序以其他人的身份发送电子邮件


你最好把
回复地址设为
地址。

我想你误解了我的意思。我想设置表单,这样当有人提交表单时,它会从他们的电子邮件地址发送。不,我没有误解你。您希望您发送的电子邮件(使用脚本)的“发件人地址”是指发送表单的人,这正是我所回答的。但是,如果表单在默认情况下将“发件人”地址添加到表单中,而我将他们的地址作为表单的一部分接收,在谷歌眼中,这有什么不同?不管怎样,我仍然收到他们的电子邮件地址。我正试图让表格提交一张票证到Assembla.com,该票证将记录他们的电子邮件地址,以便向他们发送回复。这是合法的,我们使用Gmail作为客户,因此只有员工才能访问该表单。如果不编写一个Java应用程序,我就不可能做到这一点,因为Java应用程序基本上就是这样做的。了解别人的电子邮件是一回事,能够发送电子邮件也是另一回事。此外,如果您的用例是“合法的”,那么它是不相关的,这种“模拟”功能是错误的。但是,如果你在谷歌应用程序域内(刚才默认情况下由你的接收地址解释),并且你是域管理员,那么你可以模拟你的域用户。查一查,如果你有疑问,请发布另一个问题,提到这一点和你的具体问题。
var triggers = ScriptApp.getScriptTriggers();

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

ScriptApp.newTrigger("SendConfirmationMail")
    .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
    .onFormSubmit()
    .create();
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());
}