Sending Newsletters from Django - django

I am seeking advice from someone with experience integrating django and newsletters.
I need to send newsletters from my django app. I see that there are a couple of packages that already do this such as 'pennyblack' and 'emencia'. Does anyone have experience with these? Which of these is the most versatile and easy to use? My users want to add their own content to the news letters with topic, and article. News letters generally have 3 articles with a couple of photos. I also want the newsletter to print nicely as both html and pdf formats. Any working expamples I could toy with before I dive into the code?
Thanks!!

You can send html email messages directly from django with a few lines of python code, as in this snippet: http://www.djangofoo.com/250/sending-html-email. Or you can use an email sending module (I like django-messages - it allows for html and plaintext variants and gives you a message queue). Of course, that doesn't help you manage the newsletter, so you'd have to do that yourself and render an html template the same way you do with any webpage. I assume you've already checked google for newsletter-specific django modules with more features, but I don't know of any.
However, you probably don't want to send a newsletter yourself through django (more importantly, from your own production server). For one thing, if it's going to a lot of people, you don't want it to use all of your bandwidth and make your site sluggish while a huge queue of emails is sent. But more importantly, it's easy to get your server blacklisted by spam filters if you're not sending from a known, reputable domain (if you're paying for hosting it might be less of an issue, but you should check with your hosting provider).
IMO, your best bet is to use a stand-alone email newsletter service like MailChimp or Cheetah Mail. I've used and highly recommend MailChimp for a small to medium number of recipients, but I imagine there are a bunch of others that do that same thing. It makes organizing your message campaigns and recipient lists easy with hooks to do things like add a new user on your site to a recipient list. I'm sure you could also figure out a way to get your user-submitted content into the newsletter from django.
Hope that helps.

check this out. A better solution for you is django-newsletter

Related

Send a post request to server

I am fairly new in web development and I decided to handle a user's availability to send a POST request to server. However, I do not know even whether it is possible or not but when a user close my Django site without using logout button (For example close the browser or tab), in order to understand the user is offline or online, I want to send a request to server. As a result, when the server does not get an answer from the user for a while, it automatically logout the user.
Can you tell me is it a good way to handle a user's availability and first of all is it a realistic solution? If it is, can you suggest me a document or example that helps me please.
I agree to to the answer of #Mounir. That's not related to django, if you want to know when a user is "disconnected"(close the tab or window) you need to use javascript, in concrete you need to use Sockets.
I recommend you this ones:
http://socket.io/
https://github.com/centrifugal/centrifugo
I'm using centrifugo for one project right now. In concrete, for chat and inbox messaging. It's very simple to make it run with Django.
Greetings
For logging out user you can use the Session expiration, but for all other staff you want to achieve I don't see any thin really related to Django itself, everything depend on your requirements and is more Browser/javascript related than Django.

Django 1.8: Is there a User-to-User messaging app that works both via the website and email?

I'm looking for a way for users to message each other via the website, with their own inbox, sent, etc folders, and to receive and reply to these messages via email as well. The email addresses used for replying are generated by the app to hide user's real emails. The app sits in the middle of the two users via the site and via email.
Both django-messages and django-postman give very little information about what email-related features they have. Can either do this, or is there an alternative?
Thanks
django-messages includes pretty much all you asked for including inbox, outbox, trash and many more goodies
django-postman seems even better and is in active development
try out these packages they both include documentation.

Application for Sending HTML Emails in MIME format

I am coding HTML emails for our company press releases and wondering what is the best way to send a multipart HTML email? Some people say outsource it to a mailchimp.com or a campaign monitor. Other's seem to use PHP on their web server.
What is the best way to send HTML email templates?
Thanks
Depends on how much back end work you want to do. ESP's like Campaign Monitor and Mailchimp are the best option for less technically savvy people. They are also pretty much plug and play. Using other services such as transactional options like Sendgrid, Mandrill or Mailjet, are more API driven. They are designed to be triggered by a program, usually in response to a user action. PHPList is an open source program you can host yourself, so that is also an option.
I would avoid reinventing the wheel, there are a lot of bad things that can happen if you are not really careful. You need to know about CAN-SPAM, unsubscribe handling and deliverability for example. If you get any of that wrong you can trash your domain or IP's reputation and end up getting blacklisted.
For your simple press release example, the easiest option would be to stick with an ESP.

Methods for sending dynamic content in Django apps

I'm quite new to all of this, so I apologize if the language I'm using isn't indicative of what I'm describing.
I am developing a Django app which my company will use to monitor bids at auctions which it sends out to various banks. I am at the stage now where the clients see the auction and its contents on one page, and we see pretty much the same thing on a different page. What I want to happen is for the clients to fill in their bids on all the things they want, hit "submit", whereupon on our (the admin) page, a new column pops into existence with the name of the bank and their bids on each item.
I don't think I can do this in jQuery. Do I have to use AJAX? PHP? Are all of these valid methods? I really don't know. Any help would be greatly appreciated.
I use PHP and Django. But the easiest way to build like that is with Django+Ajax.

pushing content to cell phones

I am working on a photo site and one of more active users asked about pushing content to cell phones. The site is built on django, and I was wondering if anyone knows a good way of allowing users to download and store content (images) on their cell phones?
As a side question... is it possible to accept payment for the content via the cell phone or would that have to take place on the site?
The best way to serve content to a mobile user would be to forward them to a mobile specific site. A lot of places do this by forwarding the user to http://m.mydomain.com/. You can tell if they're using a cellphone by checking against their UserAgent string as Harold said. Find more at: Change Django Templates Based on User-Agent
In terms of downloading, this is pretty phone dependant. On my iphone, for instance, I don't know that I can save images directly from the internet. (This could just be my ignorance, however). I think you're going to run into a lot of discrepencies on the browsers between different mobile devices. How many offer photo downloads vs. not, etc.
For payment, I would suggest keeping it in browser. There is SOO much that could go crazy on a cell phone and money isn't one of those places where I like to take risk. That being said, you could likely look into some sort of sms micro payment system (sorry, I don't have any recommendations) or look at partnerships with carriers such as Verison. Beyond that, I'd say keep it in the App.
Hope it helps.
Check to see if the User Agent of the phone(s) you wish to support is in request.META['HTTP_USER_AGENT']. If so, render mobile friendly templates.