<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Eswari Jayakumar</title>
    <description>The latest articles on DEV Community by Eswari Jayakumar (@eswari).</description>
    <link>https://dev.to/eswari</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F112081%2F3f76a47a-8ed3-4247-a8bc-ca2ad45e093f.jpg</url>
      <title>DEV Community: Eswari Jayakumar</title>
      <link>https://dev.to/eswari</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eswari"/>
    <language>en</language>
    <item>
      <title>Access and Upload S3 Private Bucket Files Without Credentials</title>
      <dc:creator>Eswari Jayakumar</dc:creator>
      <pubDate>Sun, 30 Jul 2023 16:04:13 +0000</pubDate>
      <link>https://dev.to/eswari/access-and-upload-s3-private-bucket-files-without-credentials-4438</link>
      <guid>https://dev.to/eswari/access-and-upload-s3-private-bucket-files-without-credentials-4438</guid>
      <description>&lt;p&gt;Normally, S3 buckets are set to private, meaning you need to grant access to individual users in order for them to access their files. However, there may be situations where certain files in the S3 bucket need to be accessed by users without requiring any credentials or permissions.&lt;/p&gt;

&lt;p&gt;Looking for a solution? AWS S3 offers pre-signed URLs, a highly beneficial feature to address your needs.&lt;/p&gt;

&lt;p&gt;Here are some scenarios that illustrate the importance of using presigned URLs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If you're creating a web conferencing software and saving video recordings in a private S3 bucket, you may need to grant access to a specific recording to an individual user. In that case, you can create a presigned URL for that single file and share the URL with the user.&lt;/li&gt;
&lt;li&gt;In your product, users upload profile pictures on their profile page. To upload these pictures directly to the S3 bucket from the front end, you'll need to use presigned URLs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Benefits of Presigned URLs:&lt;br&gt;
&lt;strong&gt;Limited Time Access:&lt;/strong&gt; You can configure the URLs' expiration time when creating them. So, it can be useful only for a limited period of time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safe Access of Buckets:&lt;/strong&gt; As it is possible to expose only relevant files to the public, there is no need for you to change the entire bucket to be publicly accessible. Your S3 bucket will stay private always.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secured URLs:&lt;/strong&gt; Nobody can alter the URL parameters when uploading the files to the S3 bucket. This is because the URLs are created using cryptographic signatures and the verification will fail when someone tries to change it.&lt;/p&gt;

&lt;p&gt;Now, Let's learn about programmatically creating pre-signed URLs using the AWS Boto3 SDK.&lt;/p&gt;

&lt;p&gt;In your project folder, Install the Boto3 SDK by running the command.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install boto3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessing the Private Objects in the S3 bucket&lt;/strong&gt;&lt;br&gt;
Then you can create a Python file inside your folder, copy and execute the below code.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

import boto3

session = boto3.Session(
    aws_access_key_id="&amp;lt;Provide your AWS access Key ID&amp;gt;",
    aws_secret_access_key="&amp;lt;Provide your AWS Secret Key&amp;gt;",
    region_name="us-east-1"
)

s3_client = session.client('s3')

url = s3_client.generate_presigned_url(
    ClientMethod="get_object",
    Params={
        'Bucket': 'demobucket',
        'Key': 'test-cover.png'
    },
    ExpiresIn=1800
    )

print(url)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This is what happens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a Boto3 Client for s3 using your AWS Credentials.&lt;/li&gt;
&lt;li&gt;Using the S3 Client, Generate a presigned URL for the test-cover.png object in the bucket named "demobucket".&lt;/li&gt;
&lt;li&gt;Here the expiry is set as 1800 seconds. But you can alter it as you want.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On executing the code, you will get an URL like below:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;https://demobucket.s3.amazonaws.com/test-cover.png?AWSAccessKeyId=AKIAY********&amp;amp;Signature=%2FfE94is0ONgAVW4LgafRLWxgvLg%3D&amp;amp;Expires=1690732722&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
You can share this URL with any of your users or web applications. With this URL, users can easily view the objects without needing any extra credentials or access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uploading an Object to a Private S3 bucket&lt;/strong&gt;&lt;br&gt;
In order to upload files from your application's frontend to private S3 buckets, you will need to generate a presigned post URL.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


response  = s3_client.generate_presigned_post(
    Bucket='demobucket',
    Key='testimage.png',
    ExpiresIn=1800
)

print(response)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Use the above code to generate a post URL for uploading an object by providing the desired Bucket Name, Object Name and Expiration time.&lt;/p&gt;

&lt;p&gt;If everything works well, you will get the JSON response as follows.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


{
   "url":"https://demobucket.s3.amazonaws.com/",
   "fields":{
      "key":"testimage.png",
      "AWSAccessKeyId":"AKIAY*******",
      "policy":"eyJleHBpcmF0aW9uIjogIjIwMjMtMDctMzBUMTY6MDU6MThaIiwgImNvbmRpdGlvbnMiOiBbeyJidWNrZXQiOiAiZXN3YXJpYnVja2V0In0sIHsia2V5IjogInRlc3RpbWFnZS5wbmcifV19",
      "signature":"qbpmLnc4pBaVFSRlXzcsrQmYXRw="
   }
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The response will contain the fields such as AWS Access Key ID, Policy and Signature.&lt;/p&gt;

&lt;p&gt;Here I have tried to upload a file using the pre-signed URL from Postman. You can even use it directly in your app UI where you have the file upload functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0epve4naonc8fog7k2y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0epve4naonc8fog7k2y.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
To properly send your request to the URL, ensure that you set the fields and files as form data in the body of the request.&lt;/p&gt;

&lt;p&gt;This will upload the file to the S3 bucket.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this blog post, you explored how to interact with Amazon S3 using Boto3, the AWS SDK for Python.&lt;/p&gt;

&lt;p&gt;We started by generating a pre-signed URL for an object in a private S3 bucket, allowing users or web applications to easily view the object without requiring any extra credentials or access.&lt;/p&gt;

&lt;p&gt;Next, we delved into the process of uploading an object to a private S3 bucket from an application's frontend.&lt;/p&gt;

&lt;p&gt;Happy Coding !&lt;/p&gt;

</description>
      <category>aws</category>
      <category>boto3</category>
      <category>python</category>
      <category>s3</category>
    </item>
    <item>
      <title>Automate Ubuntu User creation with SSH Key access using a shell script</title>
      <dc:creator>Eswari Jayakumar</dc:creator>
      <pubDate>Sun, 02 Jul 2023 17:46:34 +0000</pubDate>
      <link>https://dev.to/eswari/automate-ubuntu-user-creation-with-ssh-key-access-using-a-shell-script-2273</link>
      <guid>https://dev.to/eswari/automate-ubuntu-user-creation-with-ssh-key-access-using-a-shell-script-2273</guid>
      <description>&lt;p&gt;This blog will teach you about the shell script to automate new user creation in Ubuntu with administrative privileges. Also, you will learn about how to set up SSH access with an authorized key for the same user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Generate an SSH key in the local machine&lt;/strong&gt;&lt;br&gt;
Before executing the script in the target machine, Generate an SSH key in the local machine from where you are planning the access the target machine.&lt;/p&gt;

&lt;p&gt;In your local machine, Open Terminal and execute the below command&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

ssh-keygen -t rsa


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu42aw4cwr2k97umehxqx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu42aw4cwr2k97umehxqx.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, Execute the command and generate public and private keys. As per the above screenshot, the public key gets saved in the file testuserrsa.pub. Copy the contents of the file and provide it in the below script for the variable PUBLIC_KEY&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Execute the script in the target machine&lt;/strong&gt;&lt;br&gt;
Below is the script which is used to automate Ubuntu user creation.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Let us see a detailed line-by-line explanation of the commands.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo adduser --disabled-password --gecos "" testuser


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This command will create a new user named “testuser” without setting any password ( — disabled-password). It does not ask for any additional information(--gecos “”) and creates a user with default settings.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo usermod -aG sudo testuser


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This command simply adds the user to the “sudo” group which grants admin privileges to the user. So, the user can run commands with root privileges using the “sudo” command.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo mkdir -p /home/testuser/.ssh &amp;amp;&amp;amp; 
sudo touch /home/testuser/.ssh/authorized_keys


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;By this command, a new directory named .ssh is created inside the home directory of the user. i,e. /home/testuser. Then, a new file named “authorized_keys” is created within the .ssh directory.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo chmod 700 /home/testuser/.ssh &amp;amp;&amp;amp; 
sudo chmod 600 /home/testuser/.ssh/authorized_keys


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;With this command, you are setting appropriate permissions for the .ssh directory and authorized_keys file. Using chmod 700 command, the owner will have all the permissions over the directory. Using chmod 600 command, the Owner will have read and write permissions for the authorized_keys file, no access for the group or everyone else.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo chown -R testuser /home/testuser/.ssh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This command changes the ownership of the .ssh folder to the user “testuser”.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo sh -c "echo $public_key &amp;gt; /home/testuser/.ssh/authorized_keys"


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;With the help of this command, the public SSH key is written into the authorized_keys file in the .ssh folder of testuser’s home directory.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo sh -c "echo 'testuser ALL=(ALL) NOPASSWD:ALL' &amp;gt; /etc/sudoers.d/testuser-user"


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;On executing this command, this creates a new file “testuser-user”inside /etc/sudoers.d directory and makes the entry “testuser ALL=(ALL) NOPASSWD:ALL” inside that file. In this way, the testuser will be granted permission to execute any command with sudo privilege without requiring any password.&lt;/p&gt;

&lt;p&gt;Download the above script file and execute it either manually or using any automation tools, the user will be created without any external user prompts.&lt;/p&gt;

&lt;p&gt;In this way, you can automate Ubuntu user creation with admin privileges and SSH key access.&lt;/p&gt;

&lt;p&gt;Thanks for reading !&lt;/p&gt;

&lt;p&gt;If you like this article, do follow me and connect with me in   &lt;a href="https://www.linkedin.com/in/eswari-jayakumar/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; to learn about more interesting topics.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>ubuntu</category>
      <category>ssh</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to send email with attachments in Node.js using Nodemailer</title>
      <dc:creator>Eswari Jayakumar</dc:creator>
      <pubDate>Tue, 29 Sep 2020 03:31:45 +0000</pubDate>
      <link>https://dev.to/eswari/how-to-send-email-with-attachments-in-node-js-using-nodemailer-3g4i</link>
      <guid>https://dev.to/eswari/how-to-send-email-with-attachments-in-node-js-using-nodemailer-3g4i</guid>
      <description>&lt;p&gt;Hello everyone ! &lt;/p&gt;

&lt;p&gt;In this tutorial, We are going to learn about how to send emails in Node.js using the Nodemailer module just simply with gmail.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;A Gmail account&lt;/li&gt;
&lt;li&gt;Basic knowledge of JavaScript and NPM(Node package Manager)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Install Nodemailer and Import it in source code:
&lt;/h2&gt;

&lt;p&gt;To start with, create a working directory. Open command prompt and navigate to the directory and run the command &lt;code&gt;npm init -y&lt;/code&gt;. A &lt;code&gt;package.json&lt;/code&gt; file is generated inside the folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1601217857968%2F9-9zPQ9no.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1601217857968%2F9-9zPQ9no.png" alt="nodemailer-npm-init.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then Run the &lt;code&gt;npm install nodemailer -s&lt;/code&gt; command to install the Nodemailer package.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nodemailer is a module in Node.js to send emails easily.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1601217801957%2FgI1JGyYpX.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1601217801957%2FgI1JGyYpX.png" alt="nodemailer-install.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After installing the Nodemailer, create a file &lt;code&gt;send-mail.js&lt;/code&gt; inside the same working directory. Import the module inside the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const nodemailer = require('nodemailer');

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configure Gmail account
&lt;/h3&gt;

&lt;p&gt;Create a Nodemailer transporter object by providing the details of the email account.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth:{
        user: 'xyz@gmail.com',
        pass: 'xxxxxxx'
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set the service as &lt;strong&gt;gmail&lt;/strong&gt; and provide your &lt;strong&gt;email address and password&lt;/strong&gt; in 'auth object'.&lt;/p&gt;

&lt;p&gt;Gmail provides a concept of &lt;strong&gt;Less secure apps&lt;/strong&gt; using which we can use plain password to send emails. Turn on this setting in the link &lt;a href="https://www.google.com/settings/security/lesssecureapps" rel="noopener noreferrer"&gt;https://www.google.com/settings/security/lesssecureapps&lt;/a&gt;.&lt;br&gt;
Instead of directly providing the password, we can also use OAuth2 by adding Oauth token details in the transporter object.&lt;/p&gt;
&lt;h3&gt;
  
  
  Set the Email contents
&lt;/h3&gt;

&lt;p&gt;Next create a mailContent object with necessary details for sending an email such as from address, to address, subject, mail body content and attachments.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let mailContent={
    from: 'Sender Name &amp;lt;xyz@gmail.com&amp;gt;',
    to: 'Receiver Name &amp;lt;receivername@gmail.com&amp;gt;',
    subject: 'First Node.js email',
    text: 'Hi,This is a test mail sent using Nodemailer',
    html: '&amp;lt;h1&amp;gt;You can send html formatted content using Nodemailer with attachments&amp;lt;/h1&amp;gt;',
    attachments: [
        {
            filename: 'image1.jpg',
            path: __dirname + '/image1.jpg'
        }
    ]
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The parameters provided inside the &lt;code&gt;mailContent&lt;/code&gt; object are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;from&lt;/strong&gt; - Provide the sender name and email address. This should be same as the user email configured in the transporter object above.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;to&lt;/strong&gt; - Provide the recipient name and email address&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;subject&lt;/strong&gt; - Provide the email subject&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;text&lt;/strong&gt; - Configure the plain text email content&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;html&lt;/strong&gt; - If we want to send a proper html formatted mail, we can provide the html contents in this parameter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;attachments&lt;/strong&gt; - In this parameter, We can include a list of attachments which needs to be sent along with the mail.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Send Emails:
&lt;/h3&gt;

&lt;p&gt;As we have completely configured the mail details, now we can send the mail using the &lt;code&gt;sendMail&lt;/code&gt; method in the transporter object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;transporter.sendMail(mailContent, function(error, data){
    if(err){
        console.log('Unable to send mail');
    }else{
        console.log('Email send successfully');
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code snippet, I have provided the mailContent paramter as input for the sendMail method.&lt;/p&gt;

&lt;p&gt;We are done with the necessary coding part. Navigate to Command prompt and execute this file by running the command &lt;code&gt;node send-mail.js&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Woohoo ! Mail is delivered in recipient's inbox.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1601220203153%2FW8YXR4bmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1601220203153%2FW8YXR4bmp.png" alt="received-mail.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Coding !!! &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>email</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
