Google-app script: Send mail from secondary mailadress - google-app-engine

I have the following situation:
xxx#gmail.com (gmail login)
xxx#company.be (mails are standard send from this mailadress)
So far so good.
I use a script in google apps to send a newsletter to all my contacts.
The script always uses the xxx#gmail.com adress instead of xxx#company.be
This is the specific part of the script:
var emailYourAddr = Session.getUser().getEmail();
Does anybody know how to change the script so the mails will be sent from the standard mailadress?
Thank you very much in advance!

You will have to first configure the company mail with gmail and then Use the company email as alias to send to send mail where the from field will show company email.
Below two links might be helpful to you.
http://support.google.com/mail/bin/answer.py?hl=en&answer=22370
https://developers.google.com/apps-script/class_gmailapp#getAliases

Related

Remove "[External]" tags added by email server

My organization has begun adding obnoxious warnings to the subject and body of any email that arrives from an external address. My organization allows email forwarding, and I forward to gmail. I would like to have the extra text automatically removed before I see them in gmail. This would not violate the policies at my organization. Some ideas I had:
(1) One option would be to set up a gmail filter that edits the message. This feature does not seem to exist.
(2) Another option would be to customize the display so that this particular text is never shown on the screen. Again, there seems to be no way to do this.
(3) I wrote a script in Google Apps to grab to the content of each offending email and send an edited version to myself, but there is no way to make the "from" field show the original sender (perhaps with good reason). I can put that information in "reply to" but the gmail client doesn't show it nicely. This removes the annoying extra text at the cost of the ability to easily see who sent the email. The core of it is this call:
GmailApp.sendEmail("<my_email_address>",newSubject,newBody,{
attachments: message.getAttachments(),
bcc: message.getBcc(),
cc: message.getCc(),
htmlBody: newBody,
replyTo: message.getFrom(),
});
Any ideas? This is becoming a big problem as the "nanny state" approaches, so I'm sure others will appreciate your solution.
Issue
It unfortunately seems that at the day of this post, there is no way of edditing a forwarded email with the Gmail API. Check the documentation to see what you can actually do with the Gmail API in regards to forwarding email addresses.
Workaround
Despite it is not possible to edit a forwarding email address, in your case you are interested in:
Edit the body and subject of the email address.
Preserve the information of who the sender was.
Therefore what you could do is:
Get the email address you want to edit. Get the body, subject and information about who was sending it and store that.
Create a new message where you edit the message you just got and write on the subject the from field that was in the message you just got.
Send that created message to your desired recipient just like it was a forwarding email.
I hope this has helped you. Let me know if you need anything else or if you did not understood something. :)
Apps Script
You can insert messages into your inbox with their original "From" field but a modified body.
Note: Inserting is different from sending because the message is created on the inbox with less validation than sending.
To use this on Apps Script, take a look at the Advanced Gmail Service.
Custom Application
Another idea on how to do this is to use a custom application (in any language you'd prefer) that:
scans your company inbox with IMAP
manipulates the message body to remove the artifacts you don't want
insert manipulated message into your Gmail inbox with the Gmail API

Check email id real or fake in AngularJS project

I have a web project in AngularJS and using NOdeJS and ExpressJS on Backend.
I have a contact form in my application when I click on submit form data is sent as an email. This I have achieved using npm package called nodemailer.
But, now I wanted to check if that email id exists in real world (fake or real) before sending an email. So what is the best way to achieve this?
Can any one help me with this?
Thank you
There are some open source api like http://api.mailtest.in/v1/XXX
Where XXX is the domain from email. Which means if XXX exists as domain you can assume that mailbox might exist. Try using curl / parser to fetch the response via api call if its true means domain exists and email might exist as well.
Theoratically its possible by actually sending email and verifying the response itself. Check this https://github.com/hbattat/verifyEmail
But still there are certain conditions, many times the responses are not being sent by Mail Exchange servers for security reasons. Also your email can be blacklisted by doing this.
The real world scenario might be simple with user interaction, send email and ask them to verify their mail using the secret shared in email.

Open Gmail Client With File Already Attached

I see you can send emails with uploaded attachments using the Google Gmail API. However, I want the user to be able to preview the email before sending. It looks like there isn't a way to do this?
So essentially would the only solution be to create my own simple email client, then send the email through the API? Or would using the API even be necessary as in that case I could just use the server's native sendmail client to sent out the email with the user's gmail address as the return address.
I guess using the API, the advantage is the email would appear in the user's SENT folder.
Unfortunately, I don't think there's a live preview that's available in a way you intended. As far as I know, Outlook (for reference) doesn't even have it. What they have is to upload the attachments while the mail is still being drafted.
The best I can think of is once the message will be sent, save it as draft at first and retrieve the mail again on the succeeding page. This will look like a preview that you intended. Once done, you can then finally send the drafted email to the receipients.

send email on Google App Engine from custom domain

What I have done:
I have added my domain app.mydomain.com to my app engine project, and can successfully visit id.appspot.com using app.mydomain.com.
I have registered mydomain.com on google app for business.
The problem:
The problem is -- I am NOT able to send emails using #mydomain.com address. If I register an info#mydomain.com as an developer, this will probably solve the problem, but we need to send from more than one address, and I don't think registering a new developer for each address is reasonable.
Anybody knows how to solve this? Thanks!
You have two options:
Register all emails that you want to use as administrators/developers but as you mentioned in your post you don't want to do that.
Use SendGrid (or any other email services like Mandrill, Mailgun, etc.) which will give you a lot more features comparing to what GAE offers, including 25k free emails instead of GAE's 100.
According to the docs, the sender would need to be an administrator on the project (called "owner" in the new Developers Console). Another route would be to just use a separate email sending service like SendGrid or Postmark.
You can use the GMail API to send emails as users of your domain. Note that the emails need to be aliases, groups or users of your domain.
You shouldn't have any problem adding and verifying your domain, adding the necessary permissions to send emails. Then, every email address in your domain can be used. See here in the docs: https://developers.google.com/appengine/docs/java/mail/#Java_Sending_mail

Sender ID record when sending email with GAE

My GAE app sends email, and I followed Jeff Atwood's excellent article to improve the likelihood of email delivery.
The first two steps are really easy, but setting up a Sender ID record is more challenging. The article provides a link to a "Wizard" to help do this, but I don't know the answer to many of the questions in the wizard.
I use Google Apps for email so I'm thinking the Sender ID record should be the same for many other people in my situation (Google Apps and GAE users).
Can anyone point me to a Sender ID record for this?
EDIT:
This page explains how to set the SPF and SenderID record for Amazon SES, and gives the following TXT record for SPF:
v=spf1 include:amazonses.com -all
and the following TXT record for SenderID:
spf2.0/pra include:amazonses.com -all
Leontx's answer appears to give an SPF record and not a SenderID record.
Also, when I look at the headers of the email I send with GAE, there are notes saying that SPF authentication passes even though I haven't added either of the above TXT records to my domain. There is no info in the headers about SenderID.
I'm still confused about this, but I will now be using Amazon SES to send email. It is really cheap and it seems that Amazon takes a lot more care than Google to help make sure that email gets delivered.
Here's the TXT record I had to create to get SenderID to pass:
Host: #
Text value: v=spf1 include:_spf.google.com ~all
But I had to get both SenderID and DKIM passing to get mail into Hotmail's inbox. To get DKIM to pass I had to create a custom domain for our GAE app that matched the domain of the email's From address. Then I had enable DKIM through that domain's Google Apps account. Then it finally worked.
GAE mail (I use Python) does not give any feedback when you send mail. To receive feedback you have to use another service /API. I use Amazon SES in my applications.

Resources