Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/home/packt/env/bin/python
- import emails # https://pypi.python.org/pypi/emails
- from emails.template import JinjaTemplate as T
- import freepacktbook # https://pypi.python.org/pypi/freepacktbook/1.0.2
- import requests # https://pypi.python.org/pypi/requests/2.13.0
- mail_from = 'your_address@domain.tld'
- mail_to = 'receiver_address@domain.tld'
- mail_host = 'smpthost'
- mail_port = 587
- mail_user = 'userlogin'
- mail_password = 'userpassword'
- mail_tls = True
- mail_ssl = False
- packt_credentials = {'email': 'YourEMail', 'password': 'PASSWORD'}
- smtp = {'ssl': mail_ssl, 'tls': mail_tls, 'host': mail_host, 'port': mail_port, 'user': mail_user, 'password': mail_password}
- packt = freepacktbook.FreePacktBook(**packt_credentials)
- book = packt.claim_free_ebook()
- packt.book_formats = ['pdf']
- book_url = book['book_url']
- claim_url = book['claim_url']
- title = book.get('title')
- description = book['description']
- image_url = book.get('image_url')
- image_ext = image_url.split('.')[-1]
- image = requests.get(image_url).content
- pdf_url = packt.download_url % {'book_id': book['id'], 'format': 'pdf'}
- pdf = packt.session.get(pdf_url).content # load in memory
- tpl = T('''<!DOCTYPE html>
- <meta charset="utf-8">
- <html>
- <h1>{{ title }}</h1>
- <p>{{ description }}</p>
- <img src="cover.{{ image_ext }}" alt="cover"><br />
- <ul>
- <li>Book URL: {{ book_url }}</li>
- <li>Claim URL: {{ claim_url }}</li>
- <li>Download link: {{ pdf_url }}</li>
- </ul>
- </html>''')
- html = tpl.render(title=title,
- description=description,
- image_ext=image_ext,
- book_url=book_url,
- claim_url=claim_url,
- pdf_url=pdf_url)
- msg = emails.Message(mail_to=mail_to, subject='Free PacktPub Claim', html=html)
- msg.attach(data=image, filename='cover.{}'.format(image_ext), content_disposition='inline')
- msg.attach(data=pdf, filename='{}.{}'.format(title, 'pdf'))
- msg.transformer.synchronize_inline_images()
- msg.transformer.save()
- msg.send(mail_from=mail_from, smtp=smtp)
Add Comment
Please, Sign In to add comment