[ Content | View menu ]

Как научить Firefox открывать Gmail для написания писем при нажатии на ссылки mailto:

Опубликовано 07.11.2007

Задача: при нажатии на ссылки типа mailto:dedushke@naderevnyu.com должно открываться окно создания письма gmail, при этом в поле «Кому» должен попасть адресат из исходной ссылки, «Тема письма» также заполняется автоматически, если соответствующий параметр был в ссылке. Прочие вкусности по желанию. Браузер — Firefox, ОС — Linux.

Для Windows и MacOS Гугл рекомендует установить программу Gmail notifier и в её настройках отметить галку «Использовать Gmail для отправки электронной почты из Интернета». Она что-то правит в реестре и всё работает.

У линуксоидов как всегда свой, особый путь с многочисленными развилками и перекрёстками.

Во-первых, создадим скрипт запуска firefox с открытием окна создания нового письма и сохраним его в ~/bin/gmail-launcher.sh. Из этого обсуждения наиболее приемлемым мне показался такой вариант:

#!/bin/sh
gmailargs=`echo $1 | sed -e "s/mailto:/to=/" -e "s/\?subject=/\&su=/" -e "s/\?cc=/\&cc=/" -e "s/\?bcc=/\&bcc=/" -e "s/\?body=/\&body=/"`
firefox -remote "openurl( https://mail.google.com/mail?view=cm&$gmailargs, new-tab )"

Первая (нумерация строчек начинается с нуля) строчка преобразует параметры subject, cc, bcc, body в вид, понятный gmail’у.
Вторая открывает нужный адрес со сформированными параметрами в новой вкладке.

Во-вторых, настроим систему на использование этого скрипта как программы составления писем по умолчанию. По уже упоминавшейся ссылке приводится иллюстрированное описание этого процесса. У меня в русифицированном гноме это делается так: параметры — дополнительные параметры — предпочтительные приложения — раздел «почтовая программа».

Но у данного способа есть существенный недостаток — иногда необходимо, чтобы системным почтовиком по умолчанию был offline-клиент (например, thunderbird), а в firefox’е для всех mailto-адресов открывался gmail. Кроме того, иногда firefox «забывает», чем надо открывать почту. В таком случае необходимо приложить дополнительные усилия для разъяснения firefox’у, ху из ху.

В редакторе конфигурации about:config вводим строчку «mailto» для поиска параметров, содержащих в названии mailto. Если вы раньше ничего не трогали, то показываются три параметра (о том, что они означают, можно (и нужно) прочитать на странице About:config entries в MozillaZine Knowledge Base):

network.protocol-handler.warn-external.mailto=false
network.protocol-handler.external.mailto=true
network.protocol-handler.expose.mailto=false

Чтобы для mailto: в firefox’е запускался созданный скрипт, необходимо добавить еще один строковой параметр network.protocol-handler.app.mailto, присвоить ему значение ~/bin/gmail-launcher.sh, и изменить значение ключа network.protocol-handler.expose.mailto на true.

После этого можно протестировать работу данной фичи, нажав на эту ссылку. Должна открыться форма для создания мне письма :)

Upd. в английской версии интерфейса gmail, которая, к слову, значительно отличается от русской, вышеприведённая строчка запуска не работает. Как подсказывает Кирилл Горелов в комментарии к этому посту, необходимо запускать gmail вот так:

firefox -remote "openurl( https://mail.google.com/mail/?fs=1&tf=1&source=ig&view=cm&$gmailargs, new-tab )"

«
»

9 комментариев

Comments closed

  1. Pingback from   Как научить Firefox открывать Gmail для написания писем при нажатии на ссылки mailto by Lifehacker:

    [...] Как научить Firefox открывать Gmail для написания писем при

    22.11.2007 @ 16:51
  2. Comment by Kirill Gorelov:

    First of all, I’d like to notice that «sed» accepts multiple expressions in one line, so it’s not necessary to launch that many sed instances and pipe info between them. Besides that, there’s definitely something wrong with quotes in the original script. Use the following instead:

    gmailargs=`echo $1 | sed -e «s/mailto:/to=/» -e «s/\?subject=/\&su=/» -e «s/\?cc=/\&cc=/» -e «s/\?bcc=/\&bcc=/» -e «s/\?body=/\&body=/»`

    Another issue is that the URL given in this script didn’t work for me. If you face the problem use this line instead:

    firefox -remote «openurl( https://mail.google.com/mail/?fs=1&tf=1&source=ig&view=cm&$gmailargs, new-tab )»

    That’s pretty much it for now.
    Thanks for the idea :)

    22.11.2007 @ 22:28
  3. Comment by Kirill Gorelov:

    Yup, confirmed. The blog website engine spoils quote characters while posting the message.

    Change’em back to normal quote characters after copying the script to your favorite text editor.

    22.11.2007 @ 22:31
  4. Comment by bappoy:

    Kirill, thank you for your remarks. I fixed the sed script line and the quotes so the code is now ready to copy-paste to shell-script.

    As for url, I will left mine as it works for me in different environments; your comment is here too so anyone who experience the same trouble can see and try it.

    Again, thank you very much.

    P.S. good ideas are in the air :) nothing new here

    23.11.2007 @ 00:43
  5. Comment by [CPR]-AL.exe:

    Поставить BetterGmail и не париться.

    27.11.2007 @ 16:53
  6. Comment by bappoy:

    Обойтись своими силами без установки дополнительного ПО — дело принципа.

    27.11.2007 @ 16:56
  7. Comment by [CPR]-AL.exe:

    А слабо сделать, чтобы еще и в Prism открывалось? :))

    18.01.2008 @ 01:59
  8. Comment by [CPR]-AL.exe:

    видимо, да) Жаль, а толку от открытия в фоксе никакого :)

    22.01.2008 @ 18:12
  9. Comment by bappoy:

    [CPR]-AL.exe, если prism основан на фаерфоксе с его системой конфигурации через about:config, то, наверно, как-то можно.
    А так у меня даже запустить его не получилось нормально под своей федорой — падает с segmentation fault.

    22.01.2008 @ 19:31