emailJS:

It's all very well having a website, but what purpose would it serve without a way of contacting the developer, or the business? This is where SDKs like emailJS come in useful.

Let's set up an account. First we need some HTML code:

And a little CSS:


Now we sign up to the emailJS account. We then configure a host service and template within the site itself. This is a good example of an edited template:

Edited emailJS template example

When the mail service is configured, we send a test mail. In the test mail popup, in the top right hand side is some JavaScript code:

emaiJS test image with JavaScript code in top right

And, as we fill in the details, we can see that the JavaScript code is being added to with key and value pairs:

emaiJS test image with JavaScript code in top right filled in

Now we need to go to the Documentation page to learn how to install the service. From here, we click on the install EmailJS SDK link and find the scripts that are needed:

We insert these snippets into the <head> element of the page, and add the user_id given in the service.

Back in the emailJS dashboard, we can retrieve the user_id from the intergration then browser option.

We then paste and copy the user_id into the above script.

With this script in the <head> element, it is a self-invoking function. Now we need to write a script in a .js file.

But first, we need to change the HTML (above) a little:

We have changed the <form> element to make it return this data, the data that will be entered in the contact form.

Now, we need to add the .js script at the bottom of the page, beneath the <footer> element. We call it sendMail.js

It is within this .js script file that we create sendEmail(), and we then copy and delete the self-declaring function from the HTML and paste it into sendEmail() of the .js script. We are sending in the <form> as a parameter, thus we can add the argument contactForm to the function.

Then we add the "send" script that we find on here, which has the same first two values as in the second image above.

For the templateParams we add {key: value} pairs, the keys being "from_name", "from_email" and "project_request" - just as in the template above. We then add the values that we find from the HTML form ids.

Thus, the .js script now reads as follows:

We also add the .when() and .then() promises from the /send emailJS link:

Lastly, we add a return false statement which blocks the function from loading a new page.


The result: