Как отправить электронное письмо, используя данные строки, конкретный столбец которой только что отредактирован в Google Apps Script? - PullRequest
0 голосов
/ 09 апреля 2020

Я хочу автоматизировать мою работу по отправке электронной почты. Для этого я создал скрипт приложений Google, но он не работает.

Моя цель: если я обновлю столбец I любой строки на «Да», то электронная почта должна быть отправлена ​​на электронный адрес этой строки только путем добавления их имя пользователя и пароль. и, если возможно, статус электронной почты также изменится на «письмо отправлено в дату»

Это моя таблица table

Код: -

function onEdit(e) {
  var ss= SpreadsheetApp.getActiveSpreadsheet();
  var range = e.Range;
  if(range.getColumn()== 9 && e.getValue()=="Yes")
  {
    var celladdress = 'E'+ e.getRowIndex();
    var emailid= ss.getRange(celladdress).getValue();
    var sub = '??????????? - ???';
    var uname = ss.getRange('G'+ e.getRowIndex()).getValue();
    var pass = ss.getRange('H'+ e.getRowIndex()).getValue();
    var b = "Your details are as follows: \n Username :" +uname+ "\n Password : "+pass+ "\nThis is for your information please. \nThanks and Regards";
    MailApp.sendEmail(emailid, sub, b);
  }
  
}

1 Ответ

1 голос
/ 09 апреля 2020

Решение

В вашем скрипте было несколько ошибок, таких как e.getValue() вместо range.getValue(), я исправил эти ошибки.

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

Чтобы создать устанавливаемый триггер (если вы этого еще не сделали), go в своем редакторе сценариев, а затем Правка-> Триггеры текущего проекта и панель триггеров Добавить триггер . Выберите свою функцию (onEdit) и установите тип события на при редактировании .

Это ваш код с исправленными опечатками:

function onEdit(e) {
  var ss= SpreadsheetApp.getActiveSpreadsheet();
  var range = e.range;
  if(range.getColumn()== 9 && range.getValue()=="Yes")
  {
    
    var celladdress = 'E'+ range.getRow(); 
    var emailid= ss.getRange(celladdress).getValue();
    
    var sub = 'Credentials-reg';
    var uname = ss.getRange('G'+ range.getRow()).getValue();
    var pass = ss.getRange('H'+ range.getRow()).getValue();
    var b = "Your details are as follows: \n Username :" +uname+ "\n Password : "+pass+ "\nThis is for your information please. \nThanks and Regards";

    GmailApp.sendEmail(emailid, sub, b);
  }
  
}

Надеюсь, это помогло вам. Дайте мне знать, если вам нужно что-то еще или вы что-то не поняли. :)

...