나는 일하기 가장 간단한 것을 얻으려고 미친 듯이 느끼고 있습니다. Google 드라이브의 Google 스프레드 시트에 메일 링리스트가 있습니다. 사용자가 전자 메일에 포함 할 메시지를 묻는 사용자 인터페이스를 만들었습니다. 내 코드는 다음과 같습니다.textarea에서 텍스트 가져 오기
function startBulkEmailUI(e) {
//create main form
var app = UiApp.createApplication().setTitle('Send Email').setWidth(602).setHeight(402);
var scrollPanel = app.createScrollPanel().setId('scrollPanel').setAlwaysShowScrollBars(true) ;
var mainPanel = app.createVerticalPanel().setId('mainPanel');
mainPanel.setStyleAttribute('border', '1px solid #C0C0C0').setWidth("100%").setHeight("100%");
scrollPanel.add(mainPanel);
//create panel for input boxes etc
var inputPanel = app.createVerticalPanel().setId('inputPanel').setWidth("100%").setHeight("100%").setSpacing(0);
var messageLabel = app.createLabel('E-mail Message');
var messageBox = app.createTextArea().setName('messageBox').setId('messageBox').setVisible(true).setWidth(400).setHeight(150);
var attachmentLabel = app.createLabel('E-mail Attachment');
var attachmentCheckBox = app.createCheckBox('Attach a file').setValue(false);
inputPanel.add(messageLabel).add(messageBox).add(attachmentLabel).add(attachmentCheckBox);
mainPanel.add(inputPanel).setCellHorizontalAlignment(inputPanel, UiApp.HorizontalAlignment.CENTER) ;
inputPanel.setCellHorizontalAlignment(messageLabel, UiApp.HorizontalAlignment.CENTER);
inputPanel.setCellHorizontalAlignment(messageBox, UiApp.HorizontalAlignment.CENTER);
inputPanel.setCellHorizontalAlignment(attachmentLabel, UiApp.HorizontalAlignment.CENTER);
inputPanel.setCellHorizontalAlignment(attachmentCheckBox, UiApp.HorizontalAlignment.CENTER);
//add function buttons
var buttonsPanel = app.createHorizontalPanel().setStyleAttribute('margin', '20px').setWidth(500);
var closeButton = app.createButton('Close',app.createServerHandler('close_'));
var sendButton = app.createButton('Send!').setId("sendButton");
buttonsPanel.setId('buttonsPanel').add(closeButton).add(sendButton);
mainPanel.add(buttonsPanel).setCellHorizontalAlignment(buttonsPanel, UiApp.HorizontalAlignment.CENTER);
buttonsPanel.setCellHorizontalAlignment(closeButton, UiApp.HorizontalAlignment.CENTER).setCellHorizontalAlignment(sendButton, UiApp.HorizontalAlignment.CENTER);
app.add(scrollPanel);
//handlers
var handlerSendEmails = app.createServerClickHandler('sendEmails');
handlerSendEmails.addCallbackElement(inputPanel);
sendButton.addClickHandler(handlerSendEmails);
//show the form
ss.show(app);
return app;
}
function sendEmails(e) {
var contactDetail = getContactDetail();
var count = 0;
var failed = 0;
for (i in contactDetail) {
var row = contactDetail[i];
var emailAddress = row[9];
var stuff = e.parameter.messageBox.value;
Logger.log(e.parameter);
var message = 'Hi, ' + row[4] + '\n\n' + 'This is a test!'; // Second column
var subject = 'Test Email';
try {
// MailApp.sendEmail(emailAddress, subject, message);
count = count+1;
} catch(e) {
failed = failed+1;
}
}
var msg = stuff;
Browser.msgBox('Debug Msg', msg, Browser.Buttons.OK);
}
나는 사용자가 그때 이메일 본문으로 사용할 수있는 텍스트 영역으로 정보를 입력합니다. 나는 getText가 없다는 것을 발견했다. 그래서 나는 위의 코드처럼 보일 것이라고 말하는 수백 가지의 답변을 발견했다 : 콜백 핸들러를 만든 다음 e.parameter.OBJECT_NAME.value를 사용하여 텍스트를 얻는다. 그것은 단순히 나를 위해 작동하지 않으며 내가 생각할 수있는 모든 해결 방법을 시도했다. 어떤 제안? 내 코드가 잘못 되었나요 (나는 그것이 지저분하다는 것을 알고 있습니다 ...)?
질문에 DESPERATE, URGENT 등을 쓰지 마십시오. 당신의 필요가 다른 어떤 사람보다 더 큰지 어떻게 알 수 있습니까? – occulus
미안하지만, 내 것이 다른 어떤 것보다 더 시급한 것은 아닙니다. 나는 그저 픽스가 인터넷을 통해 제안했기 때문에 필자는 필사적으로 (필자는이 일과 행운을 비틀어서 2 일간) 필사적으로 일한다는 것을 의미했다. 나는 일을 할 수 없다 (아마 어쩌면 어리석은 일을 할 수도 있기 때문일 것이다). 그럼에도 불구하고 나는 약간 절망적이다. – user2091307