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