28 февраля 2008 в 19:58

Связка GMail + Python + Django

Существует прелестная библиотека для Python — libGmail. Используя эту библиотеку очень просто получать и отправлять письма с GMail. А еще можно сделать из своего аккаунта POP или SMTP сервер.

LibGmail можно использовать как с Питоном так и в связке с любым популярным фреймворком. Например, с Django.

Например, я использую следующий код для отправки уведомления о необходимости активации аккаунта новому пользователю:

import libgmail


def activation(request):
    to_email = request.user.email
    activation_link = dontbeevil.com/activate/%s % request.COOKIES[«sessionid»]
    ga = libgmail.GmailAccount(dontbeevil@gmail.com, «ourpassword»)
    ga.login()
    subject = «Администрация сервиса»
    msg = «Дорогой пользователь! Для активации аккаунта воспользуйтесь этой ссылкой: %s» % activation_link
    gmsg = libgmail.GmailComposedMessage(to_email, subject, msg)
    ga.sendMessage(gmsg)



Использование LibGmail избавило меня от необходимости использовать встроенный SMTP сервер моего хостера. Плюс отсутствие спама на служебный почтовый ящик :) Весь спам попадает в GMail.

Кросс-пост с моего блога.
Владимир Сергеев @diadya_vova
карма
49,8
рейтинг 0,0
Похожие публикации
Самое читаемое Разработка

Комментарии (22)

  • 0
    а как же гугл на это смотрит? ведь в соглашении вроде как есть пункт о том, что нельзя использовать таким образом :)
    • 0
      Я недавно читал по этому поводу статью создателя GMail Пола Бачейта
      http://paulbuchheit.blogspot.com/2008/01…
      Коротко: если четко придерживаться ТОС, то Гугл в первую очередь забанил бы Facebook :)
      • 0
        кстати да. вчера зарегался в фэйс буке. очень удивило, что они так свободно говорят хотят хранить ваши пароли он гмыла у себя... еще и знать ваши адресаты...
      • 0
        вероятно, они как-то договорились )
  • 0
    прелесная библиотека
    Извините за занудство, но всё-таки "прелестная"
    • 0
      спасибо, недосмотрел :)
  • +1
    А зачем либа эта, если Django умеет отправлять через защищенное соединение?
    • 0
      Да, Джанго умеет отправлять письма. Но только когда ему укажут все параметры SMTP сервера.
      Еще эту библиотеку можно использовать для реализации подтягивания контактов, как это делает Facebook.
      • 0
        Мне тоже кажется излишним использовать отдельную либу для отправки сообщений
        Ведь кроме того что вы сами ручками отправляете мыло Django например может отсылать вам терйсы ошибок или Http404, User.email_user
        т.е. лучше все таки использовать встоеный механизм (достаточно указать сервер: smtp.gmail.com и включить защищенное соединенеие)
  • +1
    Дядь Вов, спасибо огромное. Чистосердечное, большое спасибо :-)
    • 0
      на здоровье :)
  • НЛО прилетело и опубликовало эту надпись здесь
  • –1
    пишу на РНР, посему инструмент, который могу посоветовать — phpMailer [http://phpmailer.codeworxtech.com/]

    сразу же в коробке присутствует пример работы с GMail и просто daily-use примеры.

    один из плюсов: LGPL

    есть классы как для РНР4 так и для пятой ветки...

    для фильтра на спам и приема в гуглевый ящик - достаточно указывать from и sendto соответственно на свой гуглевый ящик
    • 0
      А, простите, зачем Вы это советуете в комментариях поста из блога "Django Framework"?
      • 0
        а все банально - просто не увидил что это не персональный блог :) прошу прощения...
  • 0
    Спасибо, в избранное :)
  • +2
    Спасибо, совсем недавно искал похожее решение..
    Интересно, а этот модуль будет работать с gmail аккаунтами созданными на своем домене в рамках Google Apps?
    • 0
      Думаю да. Возможно нужно будет слегка обработать напильником :)
      Там есть функция, которая собирает УРЛ для запроса и две константы - GMAIL_URL_LOGIN и GMAIL_URL_GMAIL. Они привязана к mail.google.com. Но их ведь легко можно поменять на свой домен, верно? ;)
      • 0
        Там кроме урла есть ещё вроде какие то други отличия... какие точно сейчас перечислить не смогу ибо незнаю.
  • 0
    Ухты.
    Спасибо - хороший пост, но простите за может быть вопрос новичка:

    Я давно хочу "подбить" руководство компании использовать почту gmail как корпоративный стандарт (я сам начальник отдела продаж, не IT-шник). Где-то помню читал в хелпах, что можно сделать типа, что у вас остается корпоративный адрес, например, sale@gazprom.ru а реально он лежит на серверах google и вас а) избавляют от Спама б) есть WEB интерфейс и прочие прелести Gmail

    Вопрос то вот в чем: кто-то пользуется таким решением?? Напишите плиз! Да и как это решение называется, что-то вроде "Google Apps for your domain" что-ли...
  • 0
    что делать если не находит ClientCookie
    ImportError: No module named ClientCookie

    где можно скачать ClientCookie.py?

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.