I have a client who has a crimestoppers' website. They want to provide visitors a means to submit anonymous crime tips, which would then be forwarded to a pre-established email address at the local police department.
What is the best / easiest way to accomplish this? The sender's IP address needs to be hidden. My client also needs to be able to pull reports showing how many tips were submitted and forwarded.
Many thanks!
A simple contact form can be used. It's up to the developer's trust to hide the IP. The submitter won't see anything what is being done using PHP.
You can then update a database with the tips being posted before sending the mails.
In terms of development, you can use a plugin such as Contact Form 7 and then use its hooks to save the tips submitted before sending the mails.
While it is rather simple to set up a contact form that submits to an email address (just use the excellent ContactForm7, as rrikesh's answer suggests). However, getting anonymity right (especially against a party that has as much power and resources) is tricky. You need to be clear about the level of anonymity that you can provide. Log files, document metadata or your ISP can easily give a lot of information away.
Here are two project that have different approaches. They're both not ready-made solutions to your question, but still relevant:
PrivacyBox:
This is a web service run by the German Privacy Foundation. It's basically a message relay like the one you want, except that the user has to trust the Foundation, not you. This model highly depends on the institution providing this service. I'm sure there are other, US-based services like this.
Briefkasten:
An open source software tool used by the German newspaper Die ZEIT.
a reasonably secure web application for submitting content anonymously. It allows to upload attachments which are then sanitized of a number of meta-data which could compromise the submitters identity. Next, the sanitized files are encrypted via GPG and sent via email to a pre-configured list of recipients. The original (potentially 'dirty') files are then deleted from the file system of the server. Thus, neither should admins with access to the server be able to access any submissions, nor should any of the recipients have access to the unsanitized raw material.
This is an attempt to automate the crucial steps to strip any identifying data from the submission and encrypt it, so only the intended recipients can access it.
You would have to host this yourself, though. And it's a Python app.
Related
I am working on one asp.net mvc project. In which I want the facility of customer feedback. Suppose I have sent email for getting feedback on our services. So we are sending emails to customers. They gives answer via Reply of that email. And we want to save that reply automatically in database tables. Its sure that we will receive email on one our fixed email address.
So basically i want to store the reply of email from customers into the database with that customer email id. please note here Customers reply email id will be the unique customer field for me.
Is this possible? How can i achieve such functionality? Please suggest me.
Thanks in advance.
Saving email replies has nothing to do with asp.net mvc per se.
having said that, here are some solutions that you can evaluate:
assuming all the replies go to a designated mailbox (Exchange or whatever), you can setup filters (e.g. VBA files in Exchange) which can intercept the incoming emails, parse them and save it to the data base.
if you don't want to mess with mail server native filters, you can write an offline utility (C# console app, windows service, powershell script etc.) which can query a Mailbox and parse the emails and save it to the database.
All of the above approaches have their pros/cons based on ease of installation, logging, maintainability etc.
p.s. please discard the below if it doesn't make any sense for you.
an uber advice i have always received for customer feedback design problems is to get as much objective data as possible. (as opposed to unstructured textual content in an email) and to get objective data,
one option is to have a feedback form on the website where users fill in definitive fields and you can save the information in a very structured and objective manner.
another option is to send them an email with a link to the feedback form on the site, so that if not immediately, they can leisurely come back to the same site and you collect objective data the same way.
saves you the trouble of parsing emails, trying to save email documents, parsing html/string contents, manual intervention to interpret sentiments of the email etc.
I'm developing a site where I need to send HTML newsletters to a mailing-list.
I have build a html frame where I have my "View in browser" and "Unsubscrib" links (which of cause will vary). In the admin module, I post html and uploads images for the html-newsletter. Is this a good way to do it?
How should I send the e-mails the XX.XXX persons? I can't use BCC because the unsubscribe link will vary. So I guess I have to sendt all the e-mails seperately. But the code shall be fault tollerant so only half get the newsletter if there is a error.
Best regards,
Lasse
Hope these are helpfull:
Use MailDefinition as a templating engine http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.maildefinition.aspx If your numbers are large you may look into not using SMTP as a transport protocol, but rather generating files for each email you wish to send and then putting them directly into the "Drop" folder of your SMTP server. Mirosoft SMTP Server allows this quite easily.
Use a unique bounce back email address for each email (but include a reply-to to a real address, such as office (at) yourdomain.com. Let those bounce back email addresses point to one common account and after sending your newsletter remove all addresses that bounced from your database.
As for fault tolerance, I don't think I quite understand. Why would you only want half to ge the newsletter? I would catch any server related issues and stop the processing immediately, and any client related issues (client's email does not work, see 2.) are either skipped and logged (if detected during processing) or processed later (if detected later).
Depending on your local laws check opt-in/opt-out policies.
Also take a look at embedding images directly into the html (a not well known fact is that you can embed images directly into ) this will usually make email size larger but it will let Outlook display those images directly without going to your server. Of course if you want newsletter tracking via an image beacon or similar then server images are what you want.
Of course check all common email clients for correct display. AFAIK it is almost impossible to send a format that each and every client will display correctly unless you send plain text :)
yes you will need to send the emails one by one if you want a unique unsubscribe link for each client. you may send the same email to everyone if you put a textbox on the page where people can unsubscribe by typing in their emails.
as for the email being sent out, you have the right idea. you need to host the images on your server and call these from you html.
the html must be basic html 3.0 or something of the sort. this will ensure that most email clients will properly render your email.
be extra careful when making a mailing list, it can be very easy to get banned from certain servers such as google or hotmail.
I have read a few other posts on here about mass emailing, but I need some other information. We want to integrate our mass e-mail system into our current application, but I fear this may not be a good idea. Does anyone have any input as to what kind of resources are needed to send, potentially, 1000's of emails an hour? We only have one web server right now and do not have access to our mail server. We do have full access to our web server, however. Would it be a bad idea to host the mass e-mail application on our current server? Should we have a separate sever to run this type of application and call the server via web services (WCF)? Each email would need to be sent separately because the links on the e-mail are for tracking and unsubscribing purposes. I appreciate your thoughts.
Daniel
Yes its a bad idea,
One of the key things for detecting spam, is the IP address it came from (Known as its reputation) if you start sending out alot of emails which end up getting marked as spam (Which is likly, even if the users said they wated to recieve email) your IP address could end up in trouble. I wouldnt fancy doing this on my webserver.
As for specs, your bandwidth is going to be hit hard when you start doing somthing like this. Although I think you would be suprised at how fast you can send out emails (Mail Server Dependant)
Either way when it comes to sending mass mail campaigns out, I'd speak to a third party if its somthing you are serious about, they have the knowledge and hardware to perform campaigns that are not going to damage your IP rep.
I think this issue all depends on your mail server. I've been in a project where we sent out 50-100K emails in a few hours and the main limitation was the capacity of the mail server. In my opinion it would be fine to have the mail client run on the web server as it won't be using too much resources if well written, the main question is what the mail server can take.
You can help your reputation on some email providers by contacting them and or filling out bulk mail registrations.
This is for yahoo:
http://help.yahoo.com/l/us/yahoo/mail/postmaster/bulkv2.html
I would not recommend using exchange for anything like this. You will want a separate bulk mail server like Ironport.
http://www.ironport.com/
Otherwise your internal emails will get stuck in the queue with all of your bulk emails which you definitely don't want.
The actual code involved does not have to be that complex. In my case we used an asynchronous task to loop over an email list table in the DB pulling out a batch of 20 or so at a time sending then sleeping for a number of seconds. Email providers do not like receiving hundreds/thousands of emails from a source at one time. Even better if you can stagger the list by providers.
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
I'm building a public website which has its own domain name with pop/smtp mail services. I'm considering giving users the option to update their data via email - something similar to the functionality found in Flickr or Blogger where you email posts to a special email address. The email data is then processed and stored in the underlying database for the website.
I'm using ASP.NET and SQL Server and using a shared hosting service. Any ideas how one would implement this, or if it's even possible using shared hosting?
Thanks
For starters you need to have hosting that allows you to create a catch-all mailbox.
Secondly you need a good POP3 or IMAP library, which is not included AFAIK in the .NET stack.
Then you would write a Command Line application or a Service that regularly checks the mailbox, pulls messages, inserts content in db based on the "To" address (which is unique for each user), and then deletes the email from the mailbox.
It's feasible and sounds like fun. Just make sure you have all you need before you start!
If the data is somewhat "critical", or at least moderately important, do NOT use their username as the "change-data-address". Example: You might be tempted to create an address like username#domain.com, but instead use username-randomnumer#domain.com where you give them the random number if the visit the web-page. That way people can not update other peoples data just by knowing their username.
E-mails can be trivially forged. I would only do this if you can process PGP / SMime certificates in your application.
Other than that, I see no reason why not!
use a dotnet popclient to read the incoming emails, parse them for whatever you are expecting and insert the data into the database.
see codeproject website for simple popclient implementation
you would have to decided on the email content yourself, eg data only, payload of sql statements, etc
You could also identify the user based on sender address. This is how Tripit (and probably others) does it. This only requires one e-mail address on your end.
I have done something similar, using Lumisoft's IMAP client and scheduling a task in my app that checks every x minutes the configured mail address for updates. For scheduling I recommend quartz.net. No launching external processes or anything.