Google Workspace 부가기능에서 위젯을 만들 수 있습니다. 연결된 작업이 있는 캠페인. 이때 새 이메일 초안을 작성하는 작업을 수행하고, 원하는 경우 부가기능 UI에 입력된 정보 또는 열려 있는 메시지의 정보 예를 들어, 부가기능의 메시지 UI 이 함수는 현재 열려 있는 메시지에 답장하는 정보를 삭제할 수 있습니다
메일을 작성하는 작업이 트리거되면 Gmail에서 콜백을 실행합니다. 함수를 사용하여 초안을 빌드하고 반환합니다. 그러면 Gmail은 사용자가 편집하고 전송할 수 있는 표준 이메일 작성 창의 UI 변경할 수 있습니다
초안 메시지를 빌드하는 작업 구성
선택 시 초안 작성 작업을 시작하도록 위젯을 구성하려면 다음을 실행해야 합니다. 다음을 수행하세요.
매니페스트 확인 여기에는
action.compose
범위:https://www.googleapis.com/auth/gmail.addons.current.action.compose
대신 더 많은 허용 범위를 사용할 수 있지만 다음과 같은 경우에만 사용해야 합니다. 그 범위는 절대적으로 필요합니다
위젯의
setComposeAction()
호출 위젯 핸들러 함수Action
객체를 지정하고ComposeEmailType
를 탭합니다.초안 빌드 작업을 실행하는 콜백 함수를 구현합니다. 이 함수에 이벤트 객체가 제공됩니다. 를 인수로 사용합니다. 이 콜백 함수는 다음을 실행해야 합니다.
GmailDraft
만들기 객체를 지정합니다.ComposeActionResponse
빌드ComposeActionResponseBuilder
객체를 사용하여 클래스 및GmailDraft
객체를 지정합니다.- 빌드된
ComposeActionResponse
를 반환합니다.
GmailDraft
를 미리 채울 수 있습니다.
를 사용하여 콜백 함수에서 생성하는
여기에는 수신자, 제목, 메일 본문, 첨부파일이 있습니다. 초안을 채우려면
데이터는 모든 소스에서 가져올 수 있지만 일반적으로 정보에서 파생됩니다.
부가기능 자체, 열린 메시지의 정보 또는
서드 파티 서비스에서 수집한 정보 이
이벤트 객체
콜백 함수에 전달되는 메시지에는 열려 있는 메시지 ID와 기타 부가기능이 있습니다.
초안을 미리 채우는 데 사용할 수 있는 정보를 제공합니다.
새로운 독립형 메일이나 답장으로 초안을 만들 수 있습니다.
추가할 수 있습니다. 이는 Kubernetes에서
ComposeEmailType
드림
열거형
setComposeAction()
단일 답장 또는 '전체답장'으로 답장 초안을 만들 수 있습니다. 메시지를 보낼 수 있습니다
독립형 초안
독립형 초안은 새 대화목록을 시작하며 기존 대화목록에 대한 답장이 아닙니다. 메시지가 표시됩니다. 다음 중 하나를 사용하여 독립형 초안을 만들 수 있습니다. Gmail 서비스 기능:
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
답장 초안
답장 초안은 기존 메일 대화목록의 일부입니다. 답글 초안은 다음 중 하나에 해당합니다. 메일 발신자 또는 '전체답장'으로만 전송된 단일 답장 해당 메일을 받은 모든 사용자에게 전송된 임시보관 메일입니다. 사용자는 다음 Gmail 서비스 중 하나로 답장 초안 함수:
GmailMessage.createDraftReply(body)
GmailMessage.createDraftReply(body, options)
GmailMessage.createDraftReplyAll(body)
GmailMessage.createDraftReplyAll(body, options)
GmailThread.createDraftReply(body)
GmailThread.createDraftReply(body, options)
GmailThread.createDraftReplyAll(body)
GmailThread.createDraftReplyAll(body, options)
예
다음 코드 스니펫은 답장을 작성하는 작업을 할당하는 방법을 보여줍니다. 버튼에 추가합니다
var composeAction = CardService.newAction()
.setFunctionName('createReplyDraft');
var composeButton = CardService.newTextButton()
.setText('Compose Reply')
.setComposeAction(
composeAction,
CardService.ComposedEmailType.REPLY_AS_DRAFT);
// ...
/**
* Creates a draft email (with an attachment and inline image)
* as a reply to an existing message.
* @param {Object} e An event object passed by the action.
* @return {ComposeActionResponse}
*/
function createReplyDraft(e) {
// Activate temporary Gmail scopes, in this case to allow
// a reply to be drafted.
var accessToken = e.gmail.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
// Creates a draft reply.
var messageId = e.gmail.messageId;
var message = GmailApp.getMessageById(messageId);
var draft = message.createDraftReply('',
{
htmlBody: "Kitten! <img src='cid:kitten'/>",
attachments: [
UrlFetchApp.fetch('https://example.com/images/myDog.jpg')
.getBlob()
],
inlineImages: {
"kitten": UrlFetchApp.fetch('https://example.com/images/myKitten.jpg')
.getBlob()
}
}
);
// Return a built draft response. This causes Gmail to present a
// compose window to the user, pre-filled with the content specified
// above.
return CardService.newComposeActionResponseBuilder()
.setGmailDraft(draft).build();
}