Preventing spam through e-mail frontend - email

I've written a bug reporter for my game, and after it launches, the user can review the data and submit the report to my web server via HTTP. If the submission fails, the user has the option to save the report and try again later, using the bug reporter itself, uploading the file with a web form, or attaching the report to an e-mail. I know that I can prevent spam over HTTP by analyzing the source IP, but I'm not sure how to go about this when receiving reports over e-mail. Any ideas?
Thanks,
Rob
EDIT:
The attachment will always be in JSON format; any other will be rejected. I'm just worried someone will do this:
for i = 1, 10000 do
json = generate_valid_json()
send_email(json)
end
and flood my bug tracker with noise.

Other than regular spam filters, etc I do have a suggestion for this.
If, in your application, or page, you can specify a Subject= with the Mailto: link, put a unique ID in the Subject of your message that you will be expecting to receive.
That way you accomplish 2 goals - recognizing the ID in the subject, you will know it's not spam, and if that ID is associated with your bug report, you'll already know where to put it when it arrives.
EDIT: This doesn't necessarily have to be in the subject, either - could be in the body, or you could simply give them a unique ID e-mail address to send to if you can support a catchall... like bug-394291#bugs.whatever.com.

How about saving the report when the first attempt to upload fails. When the user starts the game, start a background thread which tries to deliver the report again. Eventually, it should work and the user will have to do anything.

Sounds like you're trying to tell the difference between e-mail from random people you've never talked to before, that are sending you attachments, from spam e-mail.
Good luck!
Can you change the e-mail address every so often?
Require a certain subject line?
Require plain-text e-mail?

Related

Google gmail quickbutton action

I'm reading about the new development of Google quick action buttons in the mail inbox.
I'm a little bit lost in this topic and not understand how I can include this function in my emails.
I have read about DKIM/SPF but I don't know if this functionality could need to do an google app.
I have my mail server with marketing segmentation and I want this button is visible when email come to client (destiny) gmail inbox (guess only works in gmail....). If i have included the markup code in html in my emails, why i can't see this button?
would it need create a specific mail application to implement this feature and send emails from this app? Someone tried this?
I know maybe this has been reply before but i think must start more down... so.. sorry.
Thanks and regards!
When you are ready to launch your marked up emails to your users, you will need to register with Google. Please follow this process:
1.Send a real-life email coming from your production servers (or a server with similar DKIM/SPF/From:/Return-Path: headers) including the markup / schema to schema.whitelisting+sample#gmail.com.
2.If you send a test/blank email, an email that does not contain schema or if you don't send an email for review your application will be silently discarded.
3.Make sure that the markup is correct prior to sending the email. For more details see Testing your Schema. Especially make sure the email passes the Email markup Tester and that there are no errors, also make sure to include as much data as possible.
4.Gmail removes all markup when forwarding an email. Do not forward the email but send it directly.
Fill out the registration form available here.
Here is the link for the documentation.
Hope this helps!!
Are you sending a promotional email (offers, etc.)?
If yes, then you are likely to be delivered to the Promotions tab, where quick actions do not work (according to Litmus - https://litmus.com/ebooks/gmail-ebook/gmail-ebook/).
Quick Actions work best in the Inbox for transactional emails.
("Here is your booking confirmation" [Check-in now] quick action)
These typically arrive directly in the Inbox.

How to know that an email message was read?

I have a software that sends notifications, quotes and invoices to "clients of my clients" by email. Sometimes people don't answer it very fast, so someone needs to call by phone to confirm if they received and get the feedback. I would like to automate this, to know if them, at least, read the email. I know this is very difficult due to how email works, but some companies already try to do this in a satisfactory way, like:
mailgun.com
mailchimp.com
sendwithus.com (YCombinator funded).
In HTML mail messages we can create a resource that points to the server, like a image. But mail clients usually ask permission to the user to load the images. So, problem
here.
But for text mail messages? Is there any way to know the email was read? How companies these companies do?
PS: I don't know what tags is the best to classify my answer, I shall appreciate any edit.
There is no way to be 100% sure if a email was opened, because of its architecture. There are some techniques to do this, but it always depends of user actions and mail client configurations. But:
For HTML messages you can use images and/or the return receipts (RFC 3798).
For text based messages you can use only the return receipts (RFC 3798).
About opening tracking:
Opens are tracked by including a transparent .png file, which will
only work if there is an HTML component to the email (i.e., text only
emails will not track opens). You should note that many email service
providers disable images by default, so this data will only show up if
the recipient clicks on display images button in his/her email.
(Text extracted from mailgun.com user docs)
References:
MailGun.com documentation.
Previous discutions on this thread.
As arnt says, you're fighting the design and basic operation of e-mail. Whenever you send a mail, there is a boundary between a MTA you control (or at least have an account on) and a MTA that is responsible for your target user's mail. What you can know is whether the user's MTA accepted the mail for delivery. Whatever happens afterwards is outside of your control.
Consider an example of a snail mail. When the package enters the recipient's box, you won't know whether they put the whole unopened envelope to a trash bin, or whether they opened is and read the contents very carefully. You can approximate that goal by using crude measures (like embedding a webcam-and-a-computer which will activate upon envelope opening and send you the snapshot of the face of the opener via a cell phone), but doing so is unreliable, unethical, and probably illegal in plenty of countries.
The "return receipts" or embedded image links are similar -- because the whole e-mail is already in the hands of the user's SW, they can do anything with it. A good MUA will probably ask before sending out dumb return receipts, and it also won't load remote images in HTML mail (because it's easy to create an http://trackme.example.org/mail/for/user/12345/message/666/image.png and have a database which says "hey, this URL belongs to Mr. Pichler, and is used in the first message we sent him). The most you can do is to ask nicely, and return receipts (RFC 3798) are a machine-readable way of doing just that.

How to insure MFMailComposeViewController doesnt send email when body is not empty?

I have MFMailComposeViewController in my app in order to allow the user easily email me about suggestions and feedback on the app but I get about 3 emails a day which are just empty in the body or just the users email signature.
Is there any way of checking if the body of an email is not empty before it is sent with MFMailComposeViewController?
This is not a programming answer, and might be a bit off topic, but I have released a few apps with similar functionality, and have seen the same thing.
I have also talked with a few of the users who have sent in empty emails, and have learned that sometimes they sere just trying out the various functions of the App, and sometimes they get to the feedback page, but don't want to take the time to type out an email on their phone.
I would think of this as more of a customer service problem, and less of a programming challenge. I would use the opportunity to follow up with the users who send the empty emails. (At least now you have their email - if you don't let them send the form without a body you will likely never get it.) One option is to send a standard follow-up email that says you received an empty email from them and would love to hear their feedback on your product. (Perhaps even send them a quick survey) .
Once you have displayed the MFMailComposeViewController's view you cannot get at the message or control the behaviour. You cannot stop people sending empty mails.
If you really want to do this you will have to write a replacement view and controller. It is probably easier to filter the blank mails at the receiving end though :-)

How can I do email tracking from my website?

Our company delivers leads via email to our customers from our website. So we store those leads in our database. I want to be able to track if the email is received by the destination, opened, or if its bounced back or considered spam. I then want to update the database entry so I can quickly see if the lead made it through. A buddy suggested SendGrid as a SAS or PowerMTA as a exim replacement. I was just curious if anyone else had any good ideas?
Although this won't work for everyone, it's quite a neat little trick that will tell you that some people have definitely opened their emails...
put an img tag in your email as so:
<img src="http://yourserver.com/emailOpened?userID=[[theUsersID]]" />
When the email is opened, a request is made to your server for the image. you can match up the [[theUsersID]] with the user in your database, and you know they have received and opened the email.
As stated - it won't work for everyone - a lot of email clients will not open images by default, but it will tell inform you that some people have definitely opened the email, and you will know who they are.

Persist header data across reply emails

Am trying to determine the best way to persist information from an originating email, through to a reply back.
Essentially, it is to pass a GUID from the original email (c#), whereby when the receiver replies back, that GUID is also sent back for reference.
I have tried setting the MessageID, whereby using Outlook, the In-Reply-To value is set with the original ID, however using some webclient email systems, that value is not created on reply. Is there another way to sent this info through email headers?
Some variation on VERP is probably the most reliable...
http://en.wikipedia.org/wiki/Variable_envelope_return_path
Specifically, instead of having all your replies coming to the same address, encode the information you want to persist into the From address for the email.
For example, in the case of a helpdesk ticket, you could use something like:
From: Helpdesk <support-ticket-123#example.com>
To: End User <user#example.org>
Subject: Ticket #123 - problem with computer.
That way, regardless of what the user edits in the subject or text, you know what ticket is being referred to by the receiving email address.
I don't think you'll be able to do anything that is perfectly reliable by headers alone -- the number of clients that would have to cooperate is immense.
Most systems that do this work by including something in the body of the email that is sent that allows it to identify the message, and including text instructing the recipient to include that block of text in the response. You could also try including it in the subject (and including text in the body to leave the subject unchanged). That's how some mailing list managers I've seen do it.
I stumbled upon this question, and it's been very informative. This, however, leaves me with one question: Will using VERP, or a variation of editing the 'reply-to' or 'from address', cause the messages to be locked up in spam filters?
I have read that spam senders often change the bounce address to prevent their servers from getting clogged with bad email address bounces. Is it a spam risk to assume this approach?
The most reliable way is to put the ID in the subject, which should be preserved throughout replies.
(It doesn't hurt to tell your users that they should keep the subject intact.)
RT, a popular ticketing system, does this. They use a simple subject format like "[Ticket #123]" and key off of 123.