W GMailu, mimo że jest obecnie najpopularniejszym klientem poczty, nie zrealizowano funkcji wysyłania notyfikacji SMS o nowych mailach.
Posiadacze smartfonów mogą dowiadywać się o nowych mailach dzięki funkcji push e-mail, ale pobiera to dodatkowe megabajty, więc dla niektórych to odpada.
Zobaczmy zatem, jak wykorzystać możliwości Kalendarz Google, aby zorganizować powiadomienia smsowe o nowych wiadomościach w usłudze GMail.
(Obrazek: Our’s Article)
Na początek przypominamy, że notyfikacje SMS o nowych wydarzeniach potrafi wysyłać inna aplikacja Google – Kalendarz Google. Warto włączyć tę usługę, jeżeli zdarza nam się zapominać o zaplanowanych spotkaniach.
Jeżeli mamy już podany w Kalendarzu GMail numer telefonu komórkowego, tworzymy na GMailu nową etykietę (korzystanie z etykiet), np. SMS oraz filtr, który będzie oznaczał nową etykietą wszystkie wiadomości przychodzące na nasz adres mailowy.
Otwieramy Dysk Google i klikamy Utwórz>Więcej>Skrypt. Za chwilę dodamy prosty skrypt, ale tytułem wyjaśnienia: skrypt działa w ten sposób, że tworzy nowe wydarzenia w naszym Kalendarzu Google.
1). Jeżeli chcemy, by wydarzenia były kasowane tuż po wysłaniu powiadomienia, wybieramy skrypt nr 1:
Aby uniknąć błędów, wchodzimy do Ustawień Kalendarza Google:
Powiadomienia>Domyślnie przypominaj za pośrednictwem i ustawiamy SMS: 0 min przed każdym wydarzeniem
[stextbox id=”grey” caption=”Skrypt”]
function Notification()
{
var threads = GmailApp.getUserLabelByName(’SMS’).getThreads(); //zmienna przechowujące kolekcję łańcuszków z naszą etykietą SMS
var now = new Date();
if(threads == 0) return; // zaprzestanie wykonywania, jeżeli brak nowych łańcuszków</code>
for(i in threads) // tworzymy zdarzenia
{
CalendarApp.createEvent(threads[i].getFirstMessageSubject(),
new Date(now.getTime()+60000),
new Date(now.getTime()+60000)).setDescription(’this-is-sms_notification-mark’);
//this-is-sms_notification-mark – etykieta utworzonego zdarzenia, dzięki której można będzie je znaleźć podczas kasowania
}
GmailApp.getUserLabelByName(’SMS’).removeFromThreads(threads); //usuwanie etykiety „SMS”
Utilities.sleep(300000);
var TodaysEvents = CalendarApp.getDefaultCalendar().getEventsForDay(now);
for (i in TodaysEvents) // wyszukiwanie według zdarzenia i kasowanie po wysłaniu
{
if (TodaysEvents[i].getDescription()==’this-is-sms_notification-mark’)
TodaysEvents[i].deleteEvent();
}
}
[/stextbox]
2). Można też utworzyć nowy kalendarz, np. „GMail: Powiadomienia SMS” i przechowywać w nim takie zdarzenia. Skrypt nr 2:
[stextbox id=”grey” caption=”Skrypt”]
function my_notification()
{
var calendar = CalendarApp.getOwnedCalendarsByName(’email’)[0]; //otwieramy kalendarz o nazwie „email”
if (!calendar){
calendar = CalendarApp.createCalendar(’email’); //lub tworzymy nowy, jeżeli jeszcze go nie ma
calendar.setHidden(true);
}
var threads = GmailApp.getUserLabelByName(’SMS’).getThreads(); //zmienna, w której zapisywana jest kolekcja łańcuszków z etykietą SMS
var now = new Date();
if(threads == 0) return; // zaprzestanie wykonywania, jeżeli brak nowych łańcuszków
for(i in threads) // tworzenie zdarzeń
{
calendar.createEvent(threads[i].getFirstMessageSubject(),
new Date(now.getTime()+60000),
new Date(now.getTime()+60000));
}
GmailApp.getUserLabelByName(’SMS’).removeFromThreads(threads); //usuwanie etykiet „SMS” z łańcuszków
}
[/stextbox]
Po uruchomieniu skryptu wchodzimy do Ustawień Kalendarza Google:
Powiadomienia>Domyślnie przypominaj za pośrednictwem i ustawiamy SMS: 0 min przed każdym wydarzeniem
Po wklejeniu kodu, tworzymy wyzwalacz dla bieżącego skryptu. Klikamy Zasoby>Wyzwalacze bieżącego skryptu i definiujemy częstotliwość wykonywania, np. 1 h (wartość domyślna, więc wystarczy potwierdzić):
Teraz zgadzamy się na autoryzację:
i uruchamiamy skrypt:
Aby uniknąć ewentualnych błędów usuwamy notyfikację w oknie edytora wyzwalaczy.
Temat przestaje być przydatny z tego co widzę Google w Polsce usunęło możliwość powiadomień sms poprzez kalendarz. Pozostały jedynie w ustawieniach powiadomienia pop i e-mail.
Odświeżę temat: jest jakiś sposób na przekazanie do SMSa kto wysyłał wiadomość (pole FROM) a nie tylko tematu (pole SUBJECT)..?