Отправить собранное электронное письмо как новый тикет / проблему в функции Gitlab Servicedesk - PullRequest
0 голосов
/ 14 июля 2020

Я ищу возможность интеграции Google Forms и GitLab Service Desk. В основном моя собственная веб-форма для GitLab.

Служба поддержки GitLab обрабатывает новые проблемы по отправителю электронной почты.

Прямо сейчас мой код отправляет электронное письмо на servicedeskgitlab@mydomain.com но использует мою учетную запись электронной почты, поэтому я получаю все обновления заявки / проблемы в GitLab. Любая помощь будет принята с благодарностью.

function _onFormSubmit(e) {
  var url = SpreadsheetApp.getActive().getFormUrl();
  var form = FormApp.openByUrl(url);
  var response = form.getResponses().pop();

  var url = form.getPublishedUrl();
  var responseId = response.getId();
  //google sheet entry
  var department = e.values[5];
  var ticketsubject = e.values[3];
  var ticketsummary = e.values[9];
  var urgency = e.values[7];
  var name = e.values[1];

  // for random id
  var uid = createRandomUid(responseId);
  writeUidToSheet(uid);
  writeStatusToSheet();

  var title = "Thank you for contacting Employee Success";
  //  var lastItem = response.getItemResponses().pop();

  var useremail = response.getRespondentEmail();
  var email = "servicedeskgitlab@mydomain.com";

  var subject = " EMPLOYEE SUCCESS Channel " + uid;
  var DEPTsubject = "New " + department + " ticket submitted " + uid + " by " +
    name;
  var htmlBody =
    "<table style='width: 600px; margin: 10px auto; background: #dfe4ea;'><tr>" +
    "<td style='padding: 0px 20px;'>" +
    "<h2 style='text-align: center; letter-spacing: 0.1em; background: linear-gradient(60deg, #16a085, #1abc9c); color: #fff; padding: 10px;'>" +
    title + "</h2>" +
    "<p>TICKET#</p>" +
    "<div style='padding: 20px;border-radius: 20px; background: linear-gradient(60deg, #16a085, #1abc9c);'>" +
    "<div style='font-size: 50px; font-weight: bold; color: #ecf0f1; text-align: center;'>Ticket Number</div>" +
    "<div style='font-size: 25px; color: #2c3e50; text-align: center;'>" + uid +
    "</div>" +
    "</div>" +
    "<p><a href='" + url +
    "' style='color: #16a085;'>Submit another ticket</a></p>" +

    "<p>Thanks,<br>Employee Success</p>" +
    "</td></tr></table>";
  var options = {
    htmlBody: htmlBody
  };

  GmailApp.sendEmail(email, subject, "", options);
}

Я новичок в Apps Script / JavaScript. Есть ли способ использовать собранное электронное письмо в качестве отправителя электронного письма GitLab? Таким образом, пользователь / отправитель формы получает обновления GitLab.

1 Ответ

0 голосов
/ 15 июля 2020

Я понимаю, что вы хотите отправлять электронные письма от имени респондентов формы. Если это верно, то есть два способа сделать это.

Самый прямой способ - продолжать использовать MailApp.sendEmail(), но указав адрес электронной почты респондента в свойстве replyTo (включено в методе через параметр options). При таком подходе вы укажете GitLab, чтобы он ответил на электронную почту респондента.

Если предыдущий метод не подходит, вам следует отправить письмо прямо из учетной записи Gmail респондента. Имейте в виду, что вы можете запустить эту операцию, только если пользователь находится в вашем домене. Если это верно в вашем сценарии, вам нужно будет активировать делегирование всего домена для этой процедуры. Затем вы можете использовать учетную запись службы для отправки электронного письма от имени пользователя. Пожалуйста, не стесняйтесь задавать мне любые сомнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...