2012-02-25 41 views
2

我使用Google Spreadsheets的內置表單功能在我的網站上構建聯繫表單。如何使用Google Apps腳本加粗特定文字?

現在,考慮下面的代碼:

function sendFormByEmail(e) 
{ 

    var email = "[email protected]"; 

    subject = e.namedValues["Subject"].toString(); 

    message = "Time: " + e.namedValues["Timestamp"].toString() + "\n\n" 
    + "Name: " + e.namedValues["Name"].toString() + "\n\n" 
    + "Email: " + e.namedValues["Email Address"].toString() + "\n\n" 
    + "Website: " + e.namedValues["Website"].toString() + "\n\n" 
    + "Reason For Contacting?: " + e.namedValues["Reason For Contacting?"].toString() + "\n\n" 
    + "Message: " + e.namedValues["Message"].toString() + "\n\n"; 

    MailApp.sendEmail(email, subject, message); 

} 

它確保我只要有人提交表單收到一封電子郵件,該電子郵件的身體有信息。像這樣(例如):

時間:2012/02/25 11:53

名稱:約翰·戴維斯

電子郵件:[email protected]

網站:http://google.com

接觸的原因是?只是想和yi聊天

消息:這很久。今晚趕上我。

所以,現在你應該對代碼的作用有一個清晰的概念。關鍵是,我要輸出到這個樣子,而不是(即大膽一些文本):

時間: 2012/02/25 11:53

名稱:約翰·戴維斯

電子郵件: [email protected]

網站:http://google.com

理由聯繫?:只是想用雅

消息聊天:它已經長。今晚趕上我。

如何修改代碼以實現此目的?謝謝。

回答

10

MailApp.sendEmail可以將htmlBody作爲advancedArgs。在這裏http://code.google.com/googleapps/appsscript/class_mailapp.html

Descripted您可以發送htmlBody像

function sendFormByEmail(e) { 
    var email = "[email protected]"; 
    var subject = e.namedValues["Subject"].toString(); 
    var msgHtml = "<b>Time</b>: " + e.namedValues["Timestamp"].toString() + "<br/>" 
     + "<b>Name:</b> " + e.namedValues["Name"].toString() + "<br/>" 
     + "<b>Email:</b> " + e.namedValues["Email Address"].toString() + "<br/>" 
     + "<b>Website:</b> " + e.namedValues["Website"].toString() + "<br/>" 
     + "<b>Reason For Contacting?:</b> " + e.namedValues["Reason For Contacting?"].toString() + "<br/>" 
     + "<b>Message:</b> " + e.namedValues["Message"].toString() + "<br/>"; 

    var msgPlain = msgHtml.replace(/\<br\/\>/gi, '\n').replace(/(<([^>]+)>)/ig, ""); // clear html tags and convert br to new lines for plain mail 
    MailApp.sendEmail(email, subject, msgPlain, { htmlBody: msgHtml }); 
} 

上面一個對換行。用它來區分他們的段落:

function sendFormByEmail(e) { 
    var email = "[email protected]"; 
    var subject = e.namedValues["Subject"].toString(); 
    var msgHtml = "<p>" + "<b>Time</b>: " + e.namedValues["Timestamp"].toString() + "</p>" 
     + "<p>" + "<b>Name:</b> " + e.namedValues["Name"].toString() + "</p>" 
     + "<p>" + "<b>Email:</b> " + e.namedValues["Email Address"].toString() + "</p>" 
     + "<p>" + "<b>Website:</b> " + e.namedValues["Website"].toString() + "</p>" 
     + "<p>" + "<b>Reason For Contacting?:</b> " + e.namedValues["Reason For Contacting?"].toString() + "</p>" 
     + "<p>" + "<b>Message:</b> " + e.namedValues["Message"].toString() + "</p>"; 

    var msgPlain = msgHtml.replace(/(<([^>]+)>)/ig, ""); // clear html tags for plain mail 
    MailApp.sendEmail(email, subject, msgPlain, { htmlBody: msgHtml }); 
} 

我沒有嘗試,但它應該工作。

+0

我不知道JavaScript或Google Apps腳本。你可以在我的問題中編輯代碼嗎?謝謝。 (我正在嘗試。) – 2012-02-25 08:12:19

+0

我更新了我的答案,你可以試試嗎? – arunes 2012-02-25 08:20:44

+0

它幾乎奏效。但是沒有換行符!你可以請檢查一次嗎? – 2012-02-25 08:26:32

0

一個簡單的方法,爲我工作。

function inlineImage() { 
    MailApp.sendEmail({ 
    to: "[email protected]", 
    subject: "Subject", 
    htmlBody: '<a href="http://google.com"> <b>Google</b></a> ' , 

    }); 
}