Comments 72
Супер! Огромное спасибо!
пожалуйста! :)
Вы пробывали получать подобным образом 20-30 SMS'ок-уведомлений в день?
Дело в том, что подобное же решение у меня было реализовано год назад (чуть иначе сделанное технически, но суть такая же — через Google Calendar). Чисто эмпирически установлено, что Google Calendar начинает терять SMS'ки при большом их количестве в сутки, иначе говоря, если к вам приходит много почты — уведомлений будет приходить всё меньше и меньше.
Лично я отказался от Google Calendar по этой причине. Тем более, что есть сервисы типа IfThisThenThat, которые позволяют легально связывать функциональность разных веб-сервисов (тот же Gmail и SMS) и надежно отправлять сколько-угодно SMS, при этом без всех этих хитрожопых скриптований.
Более подробно как это сделать можно глянуть например здесь.
Дело в том, что подобное же решение у меня было реализовано год назад (чуть иначе сделанное технически, но суть такая же — через Google Calendar). Чисто эмпирически установлено, что Google Calendar начинает терять SMS'ки при большом их количестве в сутки, иначе говоря, если к вам приходит много почты — уведомлений будет приходить всё меньше и меньше.
Лично я отказался от Google Calendar по этой причине. Тем более, что есть сервисы типа IfThisThenThat, которые позволяют легально связывать функциональность разных веб-сервисов (тот же Gmail и SMS) и надежно отправлять сколько-угодно SMS, при этом без всех этих хитрожопых скриптований.
Более подробно как это сделать можно глянуть например здесь.
Отличный лайфхак. А можно как-то сделать, чтобы еще и email отправителя был в SMS?
Да, можно. Но проблема в том, что длинна названия для встречи ограничена. К тому же, это не так просто, к сожалению. Нужно вытаскивать сообщение из цепочки (последнее, например), брать из него значение поля From, а оттуда вытаскивать сам e-mail. Но поле From может в себе содеражать еще и доп текст, типа From: Vasiliy Pupkin sales manager <pupkin@company.com>, следовательно надо как-то парсить это дело, так как тема + полный текст из From редко когда будет вмещаться в название задачи… В общем я пока «человеческого» способа не нашел :)
Но если Вы захотите покопать, то милости прошу :)
developers.google.com/apps-script/class_gmailmessage
developers.google.com/apps-script/class_gmailmessage#getFrom
Но если Вы захотите покопать, то милости прошу :)
developers.google.com/apps-script/class_gmailmessage
developers.google.com/apps-script/class_gmailmessage#getFrom
Действительно, было бы отлично видеть адрес отправителя вместо своего адреса. Да и текст СМС немного кривоват.
Вообщем, спасибо огромнейшее. Надеюсь, на новые версии скрипта.
Вообщем, спасибо огромнейшее. Надеюсь, на новые версии скрипта.
у моего ОПСОСа есть бесплатная услуга «email по sms», с ней достаточно настроить пересылку и не городить костылей. Может быть и у других операторов есть, просто мало кто знает
У моего (МТС Украина) — нет, у Киевстара нет, в общем туго у нас с этим :)
У киевстара вроде бы есть, но платное. Хотя цена смешная, если я правильно посчитал
У киевстара — 0.07грн/сутки. В месяц получается 2.1грн, что вполне сносно за своевременное уведомление о имэйлах. www.kyivstar.ua/ru/mm/mobile/services/messages/smsmmse-mail/#prepaid
А можно ли написать скрипт для оповещения о днях рождения из Gmail's contacts?
Во-первых, можно импортировать это в любой календарь, как встроенный календарь. В настройках календаря кликните по отмеченной на скриншоте ссылке и выберите вкладку «Дополнительно» на новой странице — увидите «Дни рождения и мероприятия контактов»

Но уведомлений так не добиться.
Конечно можно и скрипт. Хотя, если не ошибаюсь, то нужно будет скопировать событие из встроенного календаря в свой и уже в скопированном событии установить оповещение по SMS (а если их сделать оповещением «по умолчанию», то просто скопировать)
developers.google.com/apps-script/service_calendar
К сожалению, более конкретней ничего сказать пока не могу, так как в эту сторону еще не «копал»

Но уведомлений так не добиться.
Конечно можно и скрипт. Хотя, если не ошибаюсь, то нужно будет скопировать событие из встроенного календаря в свой и уже в скопированном событии установить оповещение по SMS (а если их сделать оповещением «по умолчанию», то просто скопировать)
developers.google.com/apps-script/service_calendar
К сожалению, более конкретней ничего сказать пока не могу, так как в эту сторону еще не «копал»
Аппараты на Android это поддерживают «Из коробки», но если таково нет, тогда можно использовать данный лайвхак.
Гугл молодцы, что дают возможность улучшить сервис своими руками через данные скрипты.
Гугл молодцы, что дают возможность улучшить сервис своими руками через данные скрипты.
Сейчас практически любой аппарат поддерживает email из коробки. Проблема в том, что не все подключают (платят/находятся в радиусе действия) мобильного интернета — тут на помощь придет скрипт. И заметьте, молодец elliadan, а не гугл :)
Несомненно что elliadan молодец что написал такой скрипт, но без возможности написания скриптов это не получилось бы.
Напоминание о днях рождения Google контактов тоже поддерживается из коробки кстати.
А так действительно, если нет интернета, то это самое удачное решение.
Напоминание о днях рождения Google контактов тоже поддерживается из коробки кстати.
А так действительно, если нет интернета, то это самое удачное решение.
Это как? Апарат по 3G/WiFi проверяет почту и если есть отправляет сам себе СМС? :)
Гугл были бы молодцы, если б в настройках почты можно было просто включить sms-уведомление о email, а так приходится использовать костыли. Когда ввели уведомления в календаре, я думал — круто, скоро и для email прикрутят. Ан нет, уже лет 5 прошло, а воз и ныне там. Ворча, полез прикручивать скрипт...
> P.S.: это только у меня в интерфейсе смесь английского и русского?
У меня всё по русски.
У меня всё по русски.
А как можно сделать, чтобы отсылались уведомления только о письмах, тема которых начинается со строки «ALARM:»? :)
ifttt.com тоже так умеет если указать при подключении канала gmail label=unread.
А отправку смс в таком случае кто осуществляет: ifttt.com или все же google?
Мой провайдер (Tele2) не активируется на ifttt.com. Скорее всего потому, что их SMS провайдер работает не со всеми операторами. С Google все работает.
Могу вам только посочувствовать. Отличнейший сервис.
А у Вас какой оператор, если не секрет? В каком формате Вы вводили номер на ifttt?
Было бы хорошо сделать, чтобы ночью смс не приходили, а утром, например, все за ночь и пришли )
Подскажите, а как сделать, чтобы о том, что приходит в папку «Спам» не оповещало?
О как. У меня письма, которые падают в «Спам», не помечаются спец. ярлыком вообще. А как у вас фильтр настроен? Я вот для проверки сделал так:
И все равно спам игнорируется и не помечается, следовательно и оповещений по нему нет.
Совпадения: to:(*gmail.com) |
Действия: Применить ярлык "SMSnotify"
И все равно спам игнорируется и не помечается, следовательно и оповещений по нему нет.
Здорово придуманно! Спасибо, что поделились.
Я для таких целей делал пересылку на майл.ру и там включал оповещение через СМС. У них эта функция «из коробки». Можно настроить, чтобы ночью и в выходные СМС не отправлялись.
Я для таких целей делал пересылку на майл.ру и там включал оповещение через СМС. У них эта функция «из коробки». Можно настроить, чтобы ночью и в выходные СМС не отправлялись.
UPD: немного изменил код, перечитав доки еще раз :) Функционал не изменился, прежняя версия так же рабочая, просто теперь используется на одну переменную меньше (label лишняя оказалась, смотри третью строку кода)
Без
label
теперь не работает строчкаlabel.removeFromThreads(threads);
Соответственно
надо заменить на
label.removeFromThreads(threads);
надо заменить на
GmailApp.getUserLabelByName('SMSnotify').removeFromThreads(threads); //снимаем метки "SMSnotify"
Мне не очень понравился вариант с приостановкой скрипта на 5 минут, поэтому я решил создавать события в отдельном, скрытом календаре, и его не очищать. Скрипт поставил на запуск с периодом 1 минута, пока работает отлично.
Большое спасибо за наводку на API.
Большое спасибо за наводку на API.
function Notification()
{
var calendar = CalendarApp.getOwnedCalendarsByName('SMS')[0];
if (!calendar){
calendar = CalendarApp.createCalendar('SMS');
calendar.setHidden(true);
}
var label = GmailApp.getUserLabelByName('sms');
var threads = label.getThreads();
var now = new Date();
if(threads == 0) return; // прекращение выполнения, если новых цепочек нет
for(i in threads) // создаем события
{
calendar.createEvent('EMAIL '+threads[i].getFirstMessageSubject(),
new Date(now.getTime()+60000),
new Date(now.getTime()+60000)).addSmsReminder(0);
}
label.removeFromThreads(threads); //снимаем метки "sms"
}
Кстати, господа, а нет ли в этом топике кого-то из гугла (либо приближённых к нему), чтобы протолкнуть в корпоративный багтреккер проблему productforums.google.com/forum/#!msg/gmail/tt6_qs4CgEY/hwjSyD84E4sJ
Сам не смог продвинуть эту проблему сколь-нибудь далеко, а по факту целая страна подвержена проблеме (среди тех, кто переносил номер к другому оператору)
Сам не смог продвинуть эту проблему сколь-нибудь далеко, а по факту целая страна подвержена проблеме (среди тех, кто переносил номер к другому оператору)
Люди, а объясните мне кто-нибудь зачем нужно получать оповещения по SMS когда современные телефоны прекрасно оповещают о почте и так?
В некоторых ситуациях время автономной работы большинства современных телефонов, на которых можно _комфортно_ работать с электронной почтой непростительно мало, в то время как не-современные телефоны иногда работают в режиме ожидания более трех недель.
Также возможна ситуация, когда в виду каких либо причин использование мобильного интернета, через который современные телефоны получают информацию о содержимом почтового ящика, невозможно (плохое покрытие) или неоправданно (жуткий роуминг, etc).
Также возможна ситуация, когда в виду каких либо причин использование мобильного интернета, через который современные телефоны получают информацию о содержимом почтового ящика, невозможно (плохое покрытие) или неоправданно (жуткий роуминг, etc).
В тех ситуациях, которые вы описали, вы всё равно не сможете почту прочитать. Так какой смысл тогда в оповещении?
Надо сказать, работает весьма нестабильно. Часто возникает «Calendar: Mismatch: etags error» при попытке навесить sms-уведомление на событие в календаре. Есть соответствующий давний issue. В обсуждении предполагается, что только что созданное событие «не всегда готово» для выполнения над ним действий. Предлагают использовать try-catch и delay.
Workaround: события создавать в календаре, для которого настроены sms-уведомления по-умолчанию (Настройки->Календари->Уведомления->По умолчанию->SMS->0 мин), а в скрипте просто создавать событие, не навешивая уведомление, и не выполняя других действий над новым событием.
Workaround: события создавать в календаре, для которого настроены sms-уведомления по-умолчанию (Настройки->Календари->Уведомления->По умолчанию->SMS->0 мин), а в скрипте просто создавать событие, не навешивая уведомление, и не выполняя других действий над новым событием.
Сделал все, все работает, только приходит почему-то по три одинаковых SMS. Что с этим делать? Может, зависит от длительности события? Нельзя же длительность в ноль выставлять…
Проверьте, пожалуйста, в календаре, а количество встреч тоже утраивается?
В том-то и дело, что нет. Google рекомендует выключить-включить телефон support.google.com/calendar/bin/answer.py?hl=en&answer=37246, сделал, вроде только два уведомления пришло вместо трех. Там же Google рекомендует связаться с оператором, что тоже сделал — мне отключили-подключили услугу получения SMS. Снова отключил-включил телефон (простейшая трубка), пришло уже 4 одинаковых SMS. Чудеса…
Еще одна проблема обнаружилась спустя неделю использования скрипта: слетает авторизация и, соответственно, скрипт теряет доступ в Gmail и не может постить эвенты в календаре. Решил пока вручную — ручным запуском на выполнение и переавторизацией. Есть идеи, как это автоматизировать?
Авторизация слетает, если скрипт как-либо изменялся, тогда его нужно заново авторизовать. Возможно (я не уверен), слетит также если переименовать скрипт или переместить в другую папку внутри G-Drive. Может Вы делали что-то подобное?
К сожалению, я с подобной проблемой не сталкивался, вот чтобы он «просто так» терял авторизацию, случай конечно интересный :)
К сожалению, я с подобной проблемой не сталкивался, вот чтобы он «просто так» терял авторизацию, случай конечно интересный :)
что то я не пойму, смс как-то странно приходят, то сразу 2 по одному письму, то ни одного… вообще в день на гмайл больше 5 писем не заходит, по какому принципу смс идет — то есть, то нет…
Да, и подскажите, можно как то сделать, чтобы ночью не отправлялись?
Да, и подскажите, можно как то сделать, чтобы ночью не отправлялись?
А как сделать, чтобы в смс приходил текст письма?
Этот метод больше не работает
Важно! SMS-оповещения будут отключены 27 июня 2015 года
С 27 июня 2015 года вы больше не будете получать SMS-оповещения от Google Календаря. Функция SMS-оповещений была внедрена ещё до широкого распространения смартфонов. Однако современные мобильные устройства позволяют получать оповещения в более удобном формате и даже в офлайн-режиме.
Для просмотра оповещений вы можете использовать приложение календаря, которое было установлено на смартфоне по умолчанию, либо скачать Google Календарь для Android или iPhone. Подробнее об оповещениях…
Это изменение не коснется пользователей Google Apps for Work, Education и Government.
Важно! SMS-оповещения будут отключены 27 июня 2015 года
С 27 июня 2015 года вы больше не будете получать SMS-оповещения от Google Календаря. Функция SMS-оповещений была внедрена ещё до широкого распространения смартфонов. Однако современные мобильные устройства позволяют получать оповещения в более удобном формате и даже в офлайн-режиме.
Для просмотра оповещений вы можете использовать приложение календаря, которое было установлено на смартфоне по умолчанию, либо скачать Google Календарь для Android или iPhone. Подробнее об оповещениях…
Это изменение не коснется пользователей Google Apps for Work, Education и Government.
Спасибо! Добавил инфо в публикацию.
Чтобы найти и остановить этот скрипт, нужно перейти по адресу drive.google.com/drive/search?q=type:script, потом кнопочка «Триггеры» и убрать триггер.
Sign up to leave a comment.
Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script