how to send email from a website hosted on s3 - email

I have a website hosted on S3 on amazon web services. I want to receive emails on my gmail account from the visitors of my website if they wish to contact me. I'm confused with the steps for the setup as I tried working around with SES on amazon web service but am completely off tracK I believe.
Thanks.

S3 doesn't support any server-side code, such as PHP - so you can't use server-side logic to send an email.
There are two options:
Implement a mailto: link that will cause the user to open their mail client when then click on it.
Use a third-party mail service that supports a REST API, and implement that in Javascript. You can use something like SES, Sendgrid or Mailgun.
Each of these services can be called using Javascript. Implement your mail form page to make an API call to these services to deliver the comment to your inbox.

You can use AWS Lambda with Amazon API Gateway to create a serverless backend and use Amazon Simple Email Service to send an e-mail. A good tutorial below:
Create Dynamic Contact Forms for S3 Static Websites Using AWS Lambda, Amazon API Gateway, and Amazon SES

Late to the party, but as others have said you can setup a AWS Lambda function at an API Gateway to use AWS SES to send an email. You post your html form to it (or some other service you create on an actual server you control) and send an email via some Gmail SDK/API There's quite a few tutorials for this online.
You can also use a free third-party service like Formspree to create an html form that posts to their servers and they will send you an email to wherever you specify.

Related

I'm using Amazon S3 and want to create a form that sends out an email when submitted. How can i do this?

So the form i previously created didn't work because my site is hosted in Amazon S3. I just want a simple form that sends an email when the user clicks submit.
ron.capptivation.com/cappdev2
form is at the bottom
Any ideas on how to make this form work and send an email?
You'll need a back-end service to help you send the email.
You can use a Lambda function to send the email, then setup an API gateway to funnel your requests to the Lambda function.
Then in your static website, use Javascript to issue Ajax calls to the API gateway when the form is submitting.
A static site on S3 can't process form submissions so you can't do this with just S3. You could either create your own server process to handle form submissions, possibly on EC2 or Lambda, or you could use a service like Wufoo forms.
The other respondents are correct in that you'll need a back-end service. One popular option is formspree. Another alternative would be posting a form's contents to something like Slack or HipChat using webhooks, such as explained in this blog post.

How to create Email like "info#domain.com" and send and receive email in aws amazon

I am trying since a last few weeks to setup an email, for example,info#domainname.com, in aws Amazon SES
I tried some of the links:
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-email.html
I even went through a similar question marked closed on Stack Overflow:
How to set up Amazon SES to send and receive emails
But couldn't finish the setup correctly. Would anyone please help me to finish this task?
For your reference, I am using Free tier AWS account and have the domain attached to my Godaddy account.
When you say you want to send and receive emails, what do you mean ?
Generally SES is used to send emails from an app that you run and you want this service to handle all the posting for you, from doc - why use Amazon SES
Building a large-scale email solution is often a complex and costly
challenge for a business. You must deal with infrastructure challenges
such as email server management, network configuration, and IP address
reputation. Additionally, many third-party email solutions require
contract and price negotiations, as well as significant up-front
costs. Amazon SES eliminates these challenges and enables you to
benefit from the years of experience and sophisticated email
infrastructure Amazon.com has built to serve its own large-scale
customer base.
The receiving part as noted in doc
When you use Amazon SES to receive messages on behalf of your verified
domains, you can configure Amazon SES to deliver your messages to an
Amazon S3 bucket, call your custom code via an AWS Lambda function, or
publish notifications to Amazon SNS. You can also configure Amazon SES
to drop or bounce messages you do not want to receive.
so on receipt, SES will trigger rules that you have defined.
From your question, it sounds like you want to use a basic email client to do sending/receiving of emails, in this case Amazon provides another service called Amazon Workmail which you can compare with google apps.
If you're really looking into sending email from an app using SES, you can review this link which explains how to do it with GoDaddy

Setting up Sendgrid using AWS

I currently have a site where the data is hosted on Firebase and the static files are hosted on AWS (I registered my domain using NameCheap, but am routing to AWS using Route 53 and S3).
I now want to use SendGrid to send emails, but they are saying that I need to set up an SMTP server. I can't find anywhere what the best way to do this is. Can I get suggestions please on the best solution? I want to use SendGrid to send transactional email such as "Welcome to the site!", "Forgot Password", etc.
There seems to be some misunderstanding here. You don't need to setup an SMTP server (that's the whole point of using a provider like SendGrid or SES). However, firebase is all client-side code, so if you want to do things like send emails or integrate third party APIs or do heavy computation that is not feasible on the client side, you'll have to have some server-side code running somewhere to manage those things.
You can read more about this in the Firebase FAQ
Update You can now achieve this using Firebase's integration with Zapier: https://www.firebase.com/blog/2013-11-25-fireabase-to-apis-with-zapier.html
Is there a reason you want to specifically use sendgrid? If you are already running on aws, you could use AWS SES instead. I've had nothing but problems getting sendgrid to work and finally gave up; with SES you can be up and running in minutes.
http://aws.amazon.com/ses/

JavaMail to send email out which server?

Here is my issue, I'm creating a website with a little login and resetting password. It's basic stuff, when user forget the password they can click the link and my application will send an email with a link to reset the password. Now, I'm using Google App to send/receive email so I created a new alias like noreply#company.com.
And I just got a confirm email from Google that I'm not allowed to use Google Server to send out email by JavaMail, because they do not support JavaMail as a mail client, the issue that I'm having is I'm getting AuthenticationException back from smtp.google.com.
Moreover, I'm using Amazon EC2 to host the application as well, and amazon provides SES service to send out emails. So, the question would be can I use Google App to host our company email for every employee, but can I still use Amazon SES to send out emails by JavaMail within the same domain name as we are using with Google Apps?. So, the emails that we'll be sending out would be noreply#company.com but will be from Amazon SES.
I'm not sure if I'm making this clear enough, my concern would be we redirect email MX Record to Google App already, I think we cannot redirect to Google and Amazon at the same time?
The application we are writing is based on Grails, so the email would be from Spring Email
Cheers,
Based on my usage of Amazon SES, you should be able to use the configuration you are suggesting without any issues. You do not need to add/change any MX record when using SES, because SES does not allow you to receive emails. It is only a service for sending (relaying) email messages, i.e., as far as I understood your needs, it will serve you perfectly, and your source email address will be the same as you use today.
When you sign up for SES and want to start sending test messages, you need to verify your source and destination email addresses before actually sending emails. You can achieve this verification through either scripting (ses-verify-email-address.pl) or API (VerifyEmailAddress on AWS SDK). After sending the verification request, you should receive an email address on the verified account. Just follow the message instructions and you can safely send some test messages.
When you are satisfied with your testing, you should request production access, and after this step, you no longer need to perform verification on destination e-mail addresses.
In order to call the API, I think you can use the AWS SDK for Java without problems in your application.
See more on:
http://aws.amazon.com/ses/
http://aws.amazon.com/sdkforjava/

Is it possible to send email using YQL?

Is it possible to send Yahoo email (or any other free service like Google mail) using YQL?
If yes, please tell a little bit about the procedure.
Thank you.
You could use YQL to talk to the Yahoo! Mail Web Service. The mail web service uses OAuth for authentication and can communicate via JSON-RPC (or SOAP) which is no problem in YQL.