Tracking emails opened in gMail - php

I want to track when emails are opened in gMail and display it somewhere.
I don't want to use third party mail service.
I need to track this with something else while using Gmail API.
A colleague said there is a tool like Shiftmail or something.
Do you know any tool to track email sent via Gmail API?

Do you know any tool to track email sent via Gmail API?
AFAIK, Official Gmail Blog have announced about an exciting change to how Gmail works wherein email providers track opens by inserting a small image–unique to each subscriber–into the email. When that image is loaded, we know the email has been opened.
Please check Open tracking in Gmail is now more accurate for more information regarding this change.
On the other hand, you may want to also check and see if Postmark - Tracking opens helps. Sending emails with open tracking enabled will embed an invisible pixel into your emails that allows Postmark to record information when the email is viewed. Please note, however, of the given limitations on the use of Postmark.
Is there an API to take advantage of Gmail's pixel caching?
I'm quite not sure if this is what you're looking for, but you may want to also check Tracking Pixel API. As mentioned,
Google Mail caches images which can cause your pixel to be cached and not fire on email open! To get around this, add a no-cache header to your emails and you should be good to go!

Related

Pixel Email Tracking not working for Gmail [duplicate]

I was implementing pixel tracking for a gmail web service, but since today google has changed the gmail client to proxy linked images !
Is there any work around, as the proxy is giving my server a fake/masked ip and location?
This is true. gmail has been proxying all user content via it thus showing Mountain View,CA as its REMOTE_ADDR. This is true only for gmail clients. The same logic has not been working on Gmail via outlook or any other mail client.
Most email tracking companies rely on these details to differentiate the recepients of the mail.
I dont think there is a work around. But if there is one we would find out soon given that these companies have a lot to lose.
Meanwhile, you could try using HTTP_X_FORWARDED_FOR or disposition notification headers. But given that this can be messed with, there isnt much option left but just go back to making people click on links!!!
In my experience as of Aug 5 2018 my emails sent with a tracking pixel are blocked by google. I uncheck the send tracking pixel box in my crm and the message arrives instantly. The tracked email never arrives.
I made a video to show but its exactly as I just described and quite boring to watch lol. BUt you get the point. Obviously this is just in my experience but it's too bad because knowing if my clients read it is only way know not to keep sending the same message in a different way assuming it went to spam.
Looks to me like they're caching, not just proxying.. I whipped up a PHP file to output a random image selected out of a collection of 5 images... It's the same image each time.. Testing against Yahoo! mail and outlook, both of which change each time the email is opened..

How to preview an HTML email in various email clients before sending it. PHP/Javascript

I have developed a web app which is sending HTML email using PHP. I would like to let the user be able to see what the email will look like in various email clients (Outlook/Gmail etc) before sending it out.
I searched, but I could not find any plugins that would let me do this.
I found the Litmus email preview API which would work, but it is too expensive. Is there any website that has a similar API for a cheaper price or free that I can use? Or is there any way I can do this myself without the need of some other website.
To send bulk emails to clients, I use "poMMo" (https://github.com/soonick/poMMo), it allows you to view the email and even receive an email test, before sending it to the clients.

Make Gmail automatically show images I embed in my HTML email?

I'm constructing HTML emails in PHP with Zend_Mail and I'd like to embed/attach/whatever some images in such a way that Gmail will automatically display them without prompting the user. How can I do this?
Google's Bulk Sender Guidelines say that Gmail will automatically show images for senders who have authenticated their domain:
To ensure that Gmail can identify you:
Use a consistent IP address to send bulk mail.
Keep valid reverse DNS records for the IP address(es) from which you send mail, pointing to your domain.
Use the same address in the 'From:' header on every bulk mail you send.
We also recommend publishing an SPF record, and signing with DKIM or
DomainKeys.
By authenticating, inline images you send will be shown automatically. Recipients will not need to click the "Display images
below" link.
Google offers a page to learn more about email authentication.
You can't without the user approving your imagery. It's an anti-spam/ anti-tracking technique that has to be off by default to work.
You can make Gmail display images (embedded into content) with authenticating emails sent.
You just make sure you have a correct SPF record, and 1024 bit DKIM signed the message.
Then gmail shows embedded images within content.
As of my knowledge, This is not possible. Gmaill will hide the images initially. If the Use enables (by clicking "Always display images from XXXXXX website"), then it will be available from next time onwards
You can always show images if you use Base 64. That way images are embedded as code in the code and aren't coming from anyone else's server, so there is no tracking risk. Just google how to embed an image as Base 64 and that will solve your issue completely.

Dynamic Mail Forwarding Based on Superscription Table

Client asked this morning if we can provide a subscription service whereby:
Mail arives to a specific address on a cloud mail server with no procmail/maildrop possibilities
Cron runs Perl or PHP script on another server which checks for new mail and based on address mail purports to be from, does a subscriber look up, and forwards the email with any attachments to all subscribers along with an added unsubscribe link
Script deletes forwarded email
Mail server will have both IMAP and POP access, apparently.
// EDIT
Note that mail will be from 220+ governmental agencies/organizations. Users will use interface to specify which organizations they wish to receive forwards from. In order to run like a traditional mailing list we'd have to set up 200 mailing lists and then make an interface to handle subscriptions. The proposed interface will allow 1 - 200 subscriptions with a single opt-in confirmation email and a single opt-out interface.
// END EDIT
Client has been warned that header spoofing is child's play and that viral attachments are a serious concern and is willing to proceed nonetheless.
So, with the caveat that this is NOT an idea that I endorse what libraries have you used to accomplish this sort of task?
You do not mention what kind of mail server you are dealing with. Perl has Net::IMAP::Client and Net::POP3 to handle fetching mail.
For sending email using an SMTP server, there is Email::Sender or Net::SMTP or Net::SMTP::SSL.
At a minimum, you'll need an email account which you can use to send emails (this might be the original account that receives the messages).
In between fetching and sending, you can check for spam using Spam Assassin and for viruses using ClamAV.
I don't know why the original messages need to be deleted, but at the very least, I would log every single step in detail.
What you're describing is a mailing list. If at all possible, you should look into using one of the several existing software packages designed for managing such lists, such as majordomo, ezmlm or mailman, rather than trying to roll your own.

how to save gmail emails accordingly in database

i want to have a script that will save gmail emails from an account in mysql db using php. Mails(both freshly new and reply ones) will be marked to be in the same category if they have the same subject. That is just the same way in gmail or yahoo mail.
So far as I know gmail IMAP does not give the facility to track which are the reply mails.
Which API or whatever should I use??
The script will keep running.
Do I need to use scheduled task for that?
I haven't worked with that, but as i Google around, it turns out GMAIL provides IMAP Extensions API. And there you have an option to Access to the Gmail thread ID: X-GM-THRID
The reply emails as you call them are stored in the sent-mail folder, so just download them with IMAP.
You can track how emails go together using the In-Reply-To: and References: headers. Using the subject is not reliable.
#sof_user : every mail will have message_id in the header. google tracing the email with the id, if it is reply, then IN-REPLAY-TO will have the same id.

Categories