Emails not sending - a good way to fix this? - wordpress

I work for an advertising agency working with several clients who we are building and managing wordpress websites for. One issue that arises every time with a new install, is the issue with emails not sending/receiving. We usually solve this by installing an SMTP plugin and set it up using the clients Office 365 email account or whatever provider they have.
The problem is that this is a little time consuming, as well as some of our clients either don´t want to give away their account information/they don't know their account information/they change passwords and forms stop working.
We need a stable email solution that we can use on a wide spectrum of client pages, and that we hopefully don´t need to set up every time we make a new webpage. Does anyone have any solutions/suggestions for this?
Any help would be greatly appreciated.

Before I get into the recommendation, WordPress should use your servers default sendmail configuration so it’s possible something is misconfigured here as it should work out of the box.
But if you want something a little more bulletproof I recommend SendGrid.
One of the problems with all your sites using the same mail server is if one is blacklisted for something the others go down. With SendGrid, which is free for 10k send a month I think, you can issue an api key for each site and if one has an issue it you can easily identify it in SendGrid.
I have setup dozens of API Keys and the plug-in. It’s fast and simple and takes about 5 minutes in total. They have great delivery, detailed reports and are cheap even if you need a lot of sends.
You can Signup for an account and use the SendGrid plugin from the Wordpress repository.

Related

Server disables page after several GET requests from SIM908

I set up a free domain on 000webhost.com
I am using this as a web server to receive data from SIM908+arduino setup and store it in the database. Then display it on a web page.
I am sending the data from the SIM908 using HTTP GET requests. Basically I am sending two pieces of information, one is the location (lat and long) and other is a string. Both are sent using GET requests. The problem is very unusual so bear with me. EVERYTHING WORKS FINE, for a while. After several GET requests are sent, for some reason, 000webhost just deactivates my domain. I simply cannot access it. Every time I try to browse to the page it times out. It remains like this for around 7-8 hours after which the domain works fine again. I tried another hosting byethost.com, but GET requests from the SIM908 do not work there at all. Everything is 100% OK. The code, arduino setup everything is fine. My question is why is 000webhost stopping my domain? Really need a good answer or at least some direction, i am completely lost.
**NOTE: Please don't suggest POST method unless you explicitly know how to perform a POST operation using SIM908 AT commands, as far as I know it's not possible.
You are using the free webhost which has limitations. They will block you if your site is getting too much requests. Just read the limitations of free accounts with the server.
Look for a better free service or buy one. There is no issue with sim900 or arduino.
The following hosting service providers might be better than the one you are currently using in terms of limitations
Host Buddy You would get two months free
Free Hostia
Free Hosting .eu

Check if anyone is currently using an ASP.Net app (site)

I build ASP.NET websites (hosted under IIS 6 usually, often with SQL Server backends and forms authentication).
Clients sometimes ask if I can check whether there are people currently browsing (and/or whether there are users currently logged in to) their website at a given moment, usually so the can safely do a deployment (they want a hotfix, for example).
I know the web is basically stateless so I can't be sure whether someone has closed the browser window, but I imagine there'd be some count of not-yet-timed-out sessions or something, and surely logged-in-users...
Is there a standard and/or easy way to check this?
Jakob's answer is correct but does rely on installing and configuring the Membership features.
A crude but simple way of tracking users online would be to store a counter in the Application object. This counter could be incremented/decremented upon their sessions starting and ending. There's an example of this on the MSDN website:
Session-State Events (MSDN Library)
Because the default Session Timeout is 20 minutes the accuracy of this method isn't guaranteed (but then that applies to any web application due to the stateless and disconnected nature of HTTP).
I know this is a pretty old question, but I figured I'd chime in. Why not use Google Analytics and view their real time dashboard? It will require minor code modifications (i.e. a single script import) and will do everything you're looking for...
You may be looking for the Membership.GetNumberOfUsersOnline method, although I'm not sure how reliable it is.
Sessions, suggested by other users, are a basic way of doing things, but are not too reliable. They can also work well in some circumstances, but not in others.
For example, if users are downloading large files or watching videos or listening to the podcasts, they may stay on the same page for hours (unless the requests to the binary data are tracked by ASP.NET too), but are still using your website.
Thus, my suggestion is to use the server logs to detect if the website is currently used by many people. It gives you the ability to:
See what sort of requests are done. It's quite easy to detect humans and crawlers, and with some experience, it's also possible to see if the human is currently doing something critical (such as writing a comment on a website, editing a document, or typing her credit card number and ordering something) or not (such as browsing).
See who is doing those requests. For example, if Google is crawling your website, it is a very bad idea to go offline, unless the search rating doesn't matter for you. On the other hand, if a bot is trying for two hours to crack your website by doing requests to different pages, you can go offline for sure.
Note: if a website has some critical areas (for example, writing this long answer, I would be angry if Stack Overflow goes offline in a few seconds just before I submit my answer), you can also send regular AJAX requests to the server while the user stays on the page. Of course, you must be careful when implementing such feature, and take in account that it will increase the bandwidth used, and will not work if the user has JavaScript disabled).
You can run command netstat and see how many active connection exist to your website ports.
Default port for http is *:80.
Default port for https is *:443.

Managing Software Updates

I am looking into different ways to handle updating an ASP.NET application across many different clients, and looking for suggestions from your previous experience.
We need the client apps to check if they have any available updates.
A way to Auto update (If possible, something similar to chromes but for webapp).
Some way to check that we are the ones sending the updates. (Checksum of some sort I would guess)
Any other tips/advice
Thanks
Edit: after thinking more about this overnight, I would have to agree that auto updates may not be the best. However maybe something more along the lines of how wordpress does it. Wordpress will display saying that there is an update available then clicking will auto update the system.
I would absolutely not have your application auto update on clients (assuming you mean clients are entities external to your organization) servers. We would immediately stop using a product that would "phone home" and update itself. Clients need to be able to choose when and how an update on their server occurs.
If you are going to do this, the easiest way would be to set up URI the systems could ping once a day etc. and see if there are updates available. If so the application would pull it down from the host system and update itself. If you do it using SSL then the certificate would verify the URI being hit is your company.
Having a hard time figuring out if you're actually talking about a web application or a desktop application. If you're trying to do something similar to Chrome...I'm guessing a desktop application. If that's the case...check out ClickOnce deployment.
It offers the first three bullet points you mention:
Every time a person runs the app, it will check for updates.
If updates are found, the user can choose to install them or not (better user experience than forcing the update on the user).
The application always checks the URL that the app was installed from...which in your case would be your servers.

Third Party Email Senders

I am sending email from my asp.net application, and I wanted to see if anybody could recommend a third party that will actually send the emails. Ideally they should have some sort of web service available that I can send a request to.
Mike,
Check out some of the following. They have API's that may or may not be of use/interest to you that your application could interface with. I am sure there are others, a few months ago I went through about 5-10 providers and these are the three that stuck for me.
They send out emails to your list for you and provide you with a list of what got through, viewed, subscribed, unsubscribed, etc. The best part of their services is that they have whitelist agreements with the major email providers (hotmail, yahoo, gmail, etc) so your emails don't end up in the Junkmail box.
If you wanted to automate the sending of an email through these I am pretty sure you could write an http agent to do the interaction with the website if it isn't quite there in the API how you would like.
www.constantcontact.com
www.icontact.com
www.mailchimp.com
Each have their subtle differences that should give you a starting point for what you're looking for. Good luck!
I have used http://www.authsmtp.com in the past for an SMTP server. This was especially effective when sending from Amazon EC2 instances. It was great to have someone else manage blacklist issues etc. You should be aware of though with their service there is a limit on number of unique "from" addresses used (upgradeable of course).
Very easy to use the standard System.Net.Mail API's and just specify an smtp server in web.config
<system.net>
<mailSettings>
<smtp deliveryMethod="network">
<network
host="mail.authsmtp.com"
port="2525"
defaultCredentials="false"
userName="ac55555"
password="your-password-here" />
</smtp>
</mailSettings>
</system.net>
Some of the companies that I've worked with in the past include: Responsys, Acxiom Digital, PeopleSoft, Seibel, Eloqua, Marketo, Constant Contact, Blue Hornet, Mail Chimp and Exact Target.
The only 1 that I can verify first-hand as having an API that will actually allow you to send email without logging in and doing something manually via their UI is Responsys.
Does your ISP/hosting provider provide an SMTP server? If no, what about just using that, by way of the System.Net.Mail libraries? It's not a web service, but it's trivial to use.
Mike
I think you have to look at what kind of mails your are sending from your application.
If it's only the mail with a password when user signing up for a website, or is occasional sending a reminder from a desktop application, then stick with your business ISP and there SMTP server. Just write your own mailer using the System.Net.Mail.
At the other hand are you mass mailing thousands of people regularly then you have to be concerned about at least two things:
Not getting your URL blacklisted.
The percentage delivered mails
And just those two things a professional mailing provider can do much better than any one else. On top of that the provider gives you a lot other benefits, so as reports, click through rates, etc.
I'm using www.Aweber.com for my own business and have so for years with great satisfaction. For a client I have implemented the service from www.Getresponse.com and they are also great.
I believe those two are the best of the trade, used by a lot of marketing people and Getresponse I know have a api you can program against.
And if you want to support me - here are my affiliate links:
www.Aweber.com
www.Getresponse.com
CakeMail is, as far as I know, the only solution that meets all of your criteria.
Typically, it is used to create email campaigns and send them, and as such it offers all the features you would expect from an email campaign manager. For sending individual emails, you would simply create a new campaign, add the recipient to that campaign, and send it out. You can resend the campaign if necessary. All managed through the API.
It works on a per-recipient basis, instead of fixed mailing lists as the other solutions mentioned require. There is also no sending fee outside of the credit costs, which you would experience with a comparable solution such as Campaign Monitor.
We will be using CakeMail in exactly the same configuration in the near future.
I think I understand what your problem may be. I have a software program that I market and I want to send out newsletters to several thousand people.
Originally, I purchased Spd E-Letter from Pensaworks. It is an ASP script using Access or SQL Server. I installed it with my website and because all the ASP was provided, I was able to add customizations as I desired.
The great thing about a solution such as this is that you are in control of your data. You are not storing your data in someone else's database. If for any reason, they cut you off, a third party will not give you your data back.
It worked very well for me for several years ... until I changed webshosts and the SMTP limits at the new webhost were too low. The ISP limited batches to 50 emails (I think that's the number) at a time and wouldn't let me send out more than a couple of hundred emails an hour.
I looked at dozens of 3rd party providers of this service, from ConstantContact to Bravenet to everyone else. If you were to go with one, the ones that most of the Marketing Gurus use are AWeber and GetResponse. They all charge monthly rates that increase as your volume increases and it will end up costing you a chunk of change, so you better be making good revenues from the mailings to make it worthwhile.
Switching to such a service may be frustrating. Many of them don't let you just add your existing list, but require that you contact all your people and get them to opt in again. Many will also require you always use double-opt-in signups, where they have to respond to an email before they get added. You'll have to consider this in selecting a service.
What I was going to do was find an SMTP service that I can use to send my mailings to. I looked around for awhile but this was not a service that was easy to find. Basically, I wanted someone to accept my e-mails and send them out. Simply an SMTP server.
It so happens, I found out that Plimus, the service I use for selling my software was a partner of a webhost that provided SMTP services for them. The webhost was DewaHost, and you can get a hosting account specifically for their servers dedicated to SMTP. You do need to contact DewaHost directly to sign up with them, but their monthly rates are reasonable, up to about $40 a month for unlimited emails.
There are, of course, others. You can look up "SMTP Server Hosting" on Google but I can't vouch for the others. You'll notice DewaHost quite high up on that list.
In your comment on your own question, you say you'd like "some sort of nice neat online interface which shows all of the emails we sent, and allows me to resend them if the user requests". I think you're running into trouble trying to get a service to do that. If you're already using your own ASP.Net program to generate your own emails and maintain your list, it should be your own program or an add-on to it, like the Spd E-Letter that I used.
If you want an ASP.Net solution, there are several packages available, for example Absolute Newsletter.
I hope this helps you.
Louis
Depending on your usage requirements, have you considered using gmail? Google provides a nice secure smtp service and cool (free) goodies for hosting your own domain email using google.
To add to Matt's answer above, CakeMail also offers a Relay API Class that allows for one-off emails. You can interface with our API with one of our libraries.
Cheers,
Francois # CakeMail

Membership bulk email software

We have a Microsoft web stack web site, we have a members database.
We want to start doing mass-emails to our (opted in) membership.
I don't particularly want to re-invent the wheel with a system for having a web form submit and then mass send emails looping through thousands of records without timing out and overloading the server...
I guess I'm looking for something like Mailman, that can run on a windows (ASP/ASP.NET + SQL Server) backend and do the work for me, with suitable APIs to manage the subscriber list and send emails to that list.
Suggestions please?
I agree with acrosman, third parties that host email lists are a good way to go. A very reliable site I've found for mass emailing is http://mailing-list-services.com/. They do a good job to make sure their servers are never black listed or marked as spam. I've used them a few times, their website design blows, but their service is awsome. The Lyris Listmanager software they use has a pretty extensive API.
Advanced Intellect has some great tools, like aspNetEmail and ListNanny.
MaxBulkMailer might be a solution for you? The organisation I work for uses it to connect to www.authsmtp.com which gives us credits for a certain number of e-mails that we can send per month. You can import a spreadsheet of your mailing list or tap straight into a SQL server and pull the names and addresses. Available for Mac and Windows.
(not a sales pitch)
my company offers mail manager, but it's a hosted service. It has a full API though.
You can also check out how DotNetNuke does this
Unless your running a business that specializes in email, I'd suggest you find a hosted solution. There are 100's of little issues that come up when you run your own service over time. A hosted solution can save you lots of time and effort (and therefore money).

Resources