{"componentChunkName":"component---src-templates-blog-post-js","path":"/nodejs/nodemailer/","result":{"data":{"site":{"siteMetadata":{"title":"아구몬","author":"[AGUMON]","siteUrl":"https://ljlm0402.netlify.com","comment":{"disqusShortName":"","utterances":"ljlm0402/tech-blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"7171bf65-a70f-5c7d-84cf-9f59ab84d0b8","excerpt":"💎 목차 설치를 하며 코드를 보며 생각 해보며 ⚙️ 설치를 하며 ⬆ 목차 😳 코드를 보며 \n  service - SMTP 기반 전송 지원 auth - user: 메일 계정, pass: 계정 비밀번호  from(보내는 사람) - name: 보내는 이, address: 보내는 메일 to(받는 사람) - address: 받는 메일 subject(제목) text(내용) 전송 결과 \n ▸ ejs \n HTML 페이지를 이용하여 이메일 전송을 한다.  /public/views/example.html…","html":"<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 422px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 85.13513513513513%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAADcUlEQVQ4y3WSa0hTYRjHnzPPWWFB0c1yJ0x3TC2qHbezaUlgd7oQUVAfgvoQXaGLLiIJtC9aJPQhKiunRQvNLUhsWzeINOzmXPQhoqi1zepT0ZfIpnb6P2dbdKHBj+d9n3fnd/7POYcsAbeQhhg5UEVWX8Jg5rV3XAXFH6cMf//Mnv7fESglqqaMVMY6IyzwDfxa/y01n3tM0oWnZG4OM0JGyoJFYAqLgGAI/a8yIhGCJf9IfXGSWHjuEaR9kEHqiWRDuIAlb8FdSxBJQ0ZCoahNh/RXoh5wQPFD6k+ILJ5xNUqmxhBJZx6Q1PrMJLVESPL0t6I2EUTvIdFBgyENuk15na1IMSCkk92CUAeL+QZWX1wshJx0HanCotTcx6PvQjodwnpO9BoS3ZKS7paDPHqNqPg+CUpqzACkLPwCZnHSmdfeZ5nO9opSE0ZuerhW8oR1c0tER8oGThQ1EgbdQ+mkqyzBKpredUKy+t/w6Dc5oSH1xd9COHHhvREijCyeum9HukHIfkiphMcIoignhGgwXb/KAfdcS2gnzfPoGD0RsqZG/gYZxPFeqr1CQkPnNLyUj+lk31hoNoQBN14Ki9xJA0PqjsmBwzl5nV4kjN2GVId0CLKkIe2ItWed7ulOS5KoSRbjOR7DyNVIWK2DoUxN3+DpwRWc8EOXkdCXGIYQ4sQIRtcne1/qoqd/xBC1RIakFh65/zjJN6qj6Wf3HQwjITPIUktgrxeCYEpkpGPpMOr3Qv9AcsLlFyOiJzwM4SC+QySMNNCk2HHr1HCtLfd+zTxL6KBD7qpyTr9+wGW5e0id1n3IWdDeY1faE06lI6opHe80xRfTrFejWmFHTMvv+qxKF587Rp1/opmb+8oxskyO/JKVrvH5c+ZTTi5/WwWNW6h45xqqJGFcWXZeyext+6mkro2KTt6kosYAFeIjLqr3k9Kjk0sk+Q5RVu6eeppQ56XRZ3uJVHupV3XY20Cdqtk3gx2q07HS2DvsNapD26dqrg2q07UadZNaXjFbdZYtV13lFaiVNs21Giy3OcuW2jTnLFJVdT1YBy4Bd2lp6RFwFGuutagXwHZQARaiV4m6H3Uj4P1W7DeDZWAcC7OBCYwBY/GHGTabjfvFYDSYyn0gAgnn3Mvh67A29mASnwGBL/wDHP7T+985rzNkej8BHSYWfU/vn0EAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"logo\"\n        title=\"logo\"\n        src=\"/static/15ceaffb1ec809781e43b3a1e25b91a1/fa5c1/logo.png\"\n        srcset=\"/static/15ceaffb1ec809781e43b3a1e25b91a1/12f09/logo.png 148w,\n/static/15ceaffb1ec809781e43b3a1e25b91a1/e4a3f/logo.png 295w,\n/static/15ceaffb1ec809781e43b3a1e25b91a1/fa5c1/logo.png 422w\"\n        sizes=\"(max-width: 422px) 100vw, 422px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<center><strong style=\"color:#1FB674; font-size: 20px;\">이메일</strong> 발송을 위한 라이브러리</center>\n<h2 id=\"-목차\" style=\"position:relative;\"><a href=\"#-%EB%AA%A9%EC%B0%A8\" aria-label=\" 목차 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>💎 목차</strong></h2>\n<ul>\n<li><a href=\"#%EF%B8%8F-%EC%84%A4%EC%B9%98%EB%A5%BC-%ED%95%98%EB%A9%B0\">설치를 하며</a></li>\n<li><a href=\"#-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%B3%B4%EB%A9%B0\">코드를 보며</a></li>\n<li><a href=\"#-%EC%83%9D%EA%B0%81%ED%95%B4-%EB%B3%B4%EB%A9%B0\">생각 해보며</a></li>\n</ul>\n<h2 id=\"️-설치를-하며\" style=\"position:relative;\"><a href=\"#%EF%B8%8F-%EC%84%A4%EC%B9%98%EB%A5%BC-%ED%95%98%EB%A9%B0\" aria-label=\"️ 설치를 하며 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>⚙️ 설치를 하며</strong></h2>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\">$ npm install nodemailer</code></pre></div>\n<br />\n<p><strong><a href=\"#-%EB%AA%A9%EC%B0%A8\">⬆ 목차</a></strong></p>\n<hr />\n<h2 id=\"-코드를-보며\" style=\"position:relative;\"><a href=\"#-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%B3%B4%EB%A9%B0\" aria-label=\" 코드를 보며 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>😳 코드를 보며</strong></h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 122.97297297297298%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAAsTAAALEwEAmpwYAAADBklEQVQ4y6WV207iUBSGeQIvAIdTS1t6pKdNpQUUGc0I6GQSn0G48yF8GY2P4aVPIqDxEA+JN8bkn7W3YcJEGMUh+bsb2PvjX4euph4fH/H6+or//by8vICzUvxyfX2N0XiM8XiC8WSCyRd0e3uLp6cnAtJlOBwgjhi2NjfQbjURx/FcJUnyTs1mE77v4+joCM/Pz0hdXl6i2+3i2+oqDMNARddRLJUgSSXIMqlUFJJIhUIBuVwO+Xxe3PO1RHtXVlYwGAxwf3+P1OjiArs/f6GgmHCjGKzVgen6YDUfcaOOWkBr6IL5Lmzbgq5XoKoqFEUR0jQNq2RmOByKsFOj0Qi9/i4kzUK98wPRegcJhWc7VThRA4bHYFctMOYiijxafQJq5F5GuVwW8Gw2Kxze3d0RkIrR3dlBvlgEa7bpMDmpqHAMnVYFlqZCJ0mSJMLjmsL4+h5IDru9HjKZNKoBQ5Csgzkm1ink73UG3zZhUZg8PA6ZaqHDCwLu7e1R4ksiH7JMB2mzQpsVpQyJ7rm7WVez4PcORVF+omhSiF4VnmdTtU2oFYMOE0CAlbmw+UBRlB5yZQXVeoxgs4UgboA1NhAlMWpJE6bjUjsZSwAph9lMBiqF7NWpsbd6cKlZ43qAMPDEIR56eU7YC4G8l1RVgVQskMMW1jo7CN0qtush2lEAi6ouIB/mcAbIc2XajhB3q9BmlTcv/ZG6II8fAjnIpifFCdegUd6qVCzeOlwcuhSQh2NRY4dUEJtcMnpCXMv8ukN+kMVNRO1tmi4J1ug5Zq4DjWDSDOjTReGNrVd0eAFVN4qoXaoEKv/V1MvnUFFR80M0kghuyKAb8/vv4z6kL/mPOs1D26LpQiPLDUKRU1mWlgfyYek4jhiy/NmdSpYWw6bA6Tz8A+z3+2IC85BLYlpLwtV0MPxLHJpOp3FwcPAGHNM83N/fFz+apikcLiOL0sPPHh4evgGvrq5wdnaGk5MTHB8ff0mnp6c4Pz/Hzc0NUvzFwm/4y4q/DqfrZzR7hjMeHh7wG6I25azmayoJAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"1 example\"\n        title=\"1 example\"\n        src=\"/static/4aac17ad5cae725563f76bfc5ced550a/fcda8/1.example.png\"\n        srcset=\"/static/4aac17ad5cae725563f76bfc5ced550a/12f09/1.example.png 148w,\n/static/4aac17ad5cae725563f76bfc5ced550a/e4a3f/1.example.png 295w,\n/static/4aac17ad5cae725563f76bfc5ced550a/fcda8/1.example.png 590w,\n/static/4aac17ad5cae725563f76bfc5ced550a/efc66/1.example.png 885w,\n/static/4aac17ad5cae725563f76bfc5ced550a/c83ae/1.example.png 1180w,\n/static/4aac17ad5cae725563f76bfc5ced550a/78612/1.example.png 1260w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<ul>\n<li>\n<p><code class=\"language-text\">createTransport</code></p>\n<ul>\n<li>service - SMTP 기반 전송 지원</li>\n<li>auth - user: 메일 계정, pass: 계정 비밀번호</li>\n</ul>\n</li>\n<li>\n<p><code class=\"language-text\">sendMail</code></p>\n<ul>\n<li>from(보내는 사람) - name: 보내는 이, address: 보내는 메일</li>\n<li>to(받는 사람) - address: 받는 메일</li>\n<li>subject(제목)</li>\n<li>text(내용)</li>\n</ul>\n</li>\n</ul>\n<br />\n<p><strong>전송 결과</strong></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 280px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 70.94594594594594%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsTAAALEwEAmpwYAAABQElEQVQ4y62Sy0qHQBTGfZ5eoAu0aB1E9SY9TuugXdCipW+QiJgXdOOyEEFF8e45fWf6KxZJCg38OMcz4zfnmxltGAbu+56bpuGiKFTsuo6kDmgvGhGJAMdxzLqus23bnOc5SR2D9qIEDz9PgxaRpvmtKMG6rjnLMnZdly3LYt/3lajYh407pJdYdwtukCskP3xfIV4jXoB7JajOEKJiO0kSArLbgKMQ7y9Y+ID4KCBXSD6Oo+TPsgY8gTdtspumqerO87zBcRwpvYIjcAzOwOkC+T4B5+B9eV7zGWI3ZRFQ27ZS61CLET/+oAGjOJKoTWIrF6PmNkBTPluWd1eWJaM7kkuqqko63fpc5iZmQREzDIODIOAwDNk0TY6i6Gvlnmcz/TB7/W59tbY25g6XD/znrntEtTWR3zbYJMj/PD4Bz7o74Z144dgAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"1 result\"\n        title=\"1 result\"\n        src=\"/static/aef76e9dc53cb9c3836c18c0499f1c31/908b1/1.result.png\"\n        srcset=\"/static/aef76e9dc53cb9c3836c18c0499f1c31/12f09/1.result.png 148w,\n/static/aef76e9dc53cb9c3836c18c0499f1c31/908b1/1.result.png 280w\"\n        sizes=\"(max-width: 280px) 100vw, 280px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<br />\n<hr />\n<h3 id=\"▸-ejs\" style=\"position:relative;\"><a href=\"#%E2%96%B8-ejs\" aria-label=\"▸ ejs permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>▸ ejs</h3>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\"># nodejs 템플릿 엔진으로 HTML 형식으로 변환 시키는 모듈이다.\n$ npm install ejs</code></pre></div>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 102.02702702702702%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAACYklEQVQ4y52Uu27iQBSG/Qq5IGywMb7b+IIxxLHINqt0JGS3oI32SViF5BHyBnkaoIIKIcqU6YD+3zMTs7AiQVmKXzOeOefTuY2F1WqF9XqNzXqMNr7L5RLCy8sLft3f42f3Bj/u7tC5ucHt7S2pi253K3a2+72rTqeDXq+HxWIBod//Dcf1oJoODMeFrinQqzKqZQklsYjT01OcnZ19qvPzc5ycnKBUKmE0GkEYDAaoN5pwowayq0tcXiSIojos24brWHBIuq5DVauoVj9WpVKBTfbj8RjCw8MDonoDTr2FMG7wC832YFoMZnIgc1IUhTt+JFmWYZrmFuj7NZheAD+MkHg2Wr4L29BRUd6ND8H2gE9PT4jjmDuxtDQy0HIjJYfJufb2+X25XN4CB4+PCJsJzDBAI00QxAkcP4Rbo6gdj6draO/SaW/qGjWOaqfp0C0bumkTWNkBUlOCIICsalTDOrJ2RlCqpetyIGuIRRAGMjSNl4JDDQOG7ZIcHuUeUJJEikBDnFzAi2I4tkGwKsqU1scpy5+knAPZHLECa4aFKL1CI46QRj6P5nBT1H+bsgektNwg4qnULAM12+TnXx6bXSBzMtj8EdAiAyuvm6oeDZThESz59h1xKyWQmtepcjDKgynrNA7NZhN+FHFgJYf8d4SSJL0DaUx8j+rn+zQaJo/60CvZAz6ywQ5DfsEOGZDtWXRf0ead//059Pt9uDTELEKmYrEIsSjy9SsSRRGFQoFDh8MhhOfnZ/7zTNMU7Xb7KGVZhuvra0wmEwivr6+Yz+f8YzqdHiXmO5vN8Pb2hj9QIswa8J6snQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"2 example\"\n        title=\"2 example\"\n        src=\"/static/66714555e3d4c047ff3201002e6a9db3/fcda8/2.example.png\"\n        srcset=\"/static/66714555e3d4c047ff3201002e6a9db3/12f09/2.example.png 148w,\n/static/66714555e3d4c047ff3201002e6a9db3/e4a3f/2.example.png 295w,\n/static/66714555e3d4c047ff3201002e6a9db3/fcda8/2.example.png 590w,\n/static/66714555e3d4c047ff3201002e6a9db3/efc66/2.example.png 885w,\n/static/66714555e3d4c047ff3201002e6a9db3/c83ae/2.example.png 1180w,\n/static/66714555e3d4c047ff3201002e6a9db3/f98ee/2.example.png 1808w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<ul>\n<li>HTML 페이지를 이용하여 이메일 전송을 한다.</li>\n<li>\n<p><code class=\"language-text\">ejs.renderFile</code></p>\n<ul>\n<li>/public/views/example.html 파일을 불러와서 전송한다.</li>\n</ul>\n</li>\n</ul>\n<br />\n<p><strong>전송 결과</strong></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 33.108108108108105%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAwklEQVQoz5VPWwrCMBDM/fHbO3gDryLFv1YpCDbVpk3zGHdjYmKKHy4M+5oddoSUsgOw897vCWcCfAwUEecBKOuKI+Z5vlJ9oOZIkEmQ9/8K8omoyekz5xzMamCMCTkdO0om1RWHexEFbITPD3nPBAZH3/c4NQ1u3YUbdG2L+zB8hBnB8sZO7OvQeoEcR0yPEXZ6QimF1awbnigFStFgh60YG7K1/AGwaA21aNp7mtkvTrD8S5AzH2VkW++di8gcnr8ApcAnub5ykPIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"2 result\"\n        title=\"2 result\"\n        src=\"/static/6c3aa717931841600b2d50e9592d5cdb/fcda8/2.result.png\"\n        srcset=\"/static/6c3aa717931841600b2d50e9592d5cdb/12f09/2.result.png 148w,\n/static/6c3aa717931841600b2d50e9592d5cdb/e4a3f/2.result.png 295w,\n/static/6c3aa717931841600b2d50e9592d5cdb/fcda8/2.result.png 590w,\n/static/6c3aa717931841600b2d50e9592d5cdb/efc66/2.result.png 885w,\n/static/6c3aa717931841600b2d50e9592d5cdb/c83ae/2.result.png 1180w,\n/static/6c3aa717931841600b2d50e9592d5cdb/bc3ae/2.result.png 1268w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<br />\n<hr />\n<h3 id=\"▸-html-pdf\" style=\"position:relative;\"><a href=\"#%E2%96%B8-html-pdf\" aria-label=\"▸ html pdf permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>▸ html-pdf</h3>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\"># HTML 형식 파일을 PDF 문서로 변환시키는 모듈이다.\n$ npm install html-pdf</code></pre></div>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 123.64864864864865%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC7ElEQVQ4y6VUyU4bQRT0GQkkYmKCPT37TM/uGQPG2CgokXJiOXDmo2yHm3+EmB9gOyJxQIgbYRESfEHldds4gWDIkEOp9+p6r1534f7+HtfX1/h5dSXb9+Lm5gYPDw8oXFxcYGfnO7qdNjqEdrszQKdD4w663e6baLfb6PV6uLy8RGFvbw8zMx/BVA2fyhXqF1EqzaBUnEbxwzSmpqYwOTk5FmJ9YmICjDEcHx+j0O//gOV6yBoraH1uolmvIU0icNsGd2yYpgnDMMZCrGuahjiOcXh4SAr7fWiGJUmDgMP3XLhEJjapqkqtKluhQLQvoVKp0NlgQCgUGo6PuN5CtlhHGIbgcQqHc9rk0tiTKnIQ9il/KsJaHUEYIeYOYlLJbQv6UGU+hWSKTpOGZcNxORFaiIjUGJIxpo4lGqRE+1uh6XlwKTSLVDHdgkIkwnWmKBIKqVMU9qRljOaH6+Vy+TehMIXRLU6SIltexFKribTeQJxl8OIqXeKAWwY8usw2DfiORWOT5m3Y3AOPEjLVRDgipJClCpIdhzGWmw14tChKQqeNKl0mwjd0TeZUtLKv67RuyFQJxcETQhkCo010UxSSymWkrS/ktEdzlCOFjfY8h0p4GrIkVEZOKkoFjhcgW/lKZbSApfkYHhX4WJefm/KocFQeklgBp/B5mCBybSS+K9183Pec/HVCGbpOKn16PRyWoUsjhCHjVL5OSAYZpoW0uYp0sQGfuzJPfyrMRyj7GqKFBhZWvyGpVhHSyzFJ6btDNqkceBDBSzL4URXcD2iNyfy+S6FJIWe1eVRrNVlr4sCAjL0Y9puEAiGZkqYxXD/M9zkIQvkmhwekw45D9UUPn4pao3FuQuGgTW/TsqzRTyzm/gVCgLgsiiIcHR2hsLu7i7m5Ofl8SqVSbszOzqJYLMpP+ODgAIX9/X1sbW1hfX0dm5ub2NjYyAVxZm1tDdvb2zg5OUHh9vYWZ2dnOD09/S+cn5/j7u4OvwDyRIXeSkbPLQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"3 1 example\"\n        title=\"3 1 example\"\n        src=\"/static/a9e7e889c88205cca17dcf10fc22503d/fcda8/3-1.example.png\"\n        srcset=\"/static/a9e7e889c88205cca17dcf10fc22503d/12f09/3-1.example.png 148w,\n/static/a9e7e889c88205cca17dcf10fc22503d/e4a3f/3-1.example.png 295w,\n/static/a9e7e889c88205cca17dcf10fc22503d/fcda8/3-1.example.png 590w,\n/static/a9e7e889c88205cca17dcf10fc22503d/efc66/3-1.example.png 885w,\n/static/a9e7e889c88205cca17dcf10fc22503d/c83ae/3-1.example.png 1180w,\n/static/a9e7e889c88205cca17dcf10fc22503d/05244/3-1.example.png 1752w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 52.70270270270271%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAABp0lEQVQoz6WTy07CQBSGu2YBWK6BtrTlUqClxYoIblxZEi41Ma55DB5EubjkDXgRIGEDKxbsSLgkPMHvzBgSUBI1Lr7MzMn5/5lzTobb7/fYbLbYbLfYnrD7cv6J3W6Hw+EAbjQaofv2ivfBAL1ej9Bn9Pu/Y0B03W4Xw+EQ6/UanPPogL+6ghCPIRQKIhTgGX6/Hz6f7wyvl+I9g+Z5PB7IsozZbAbOfX6Bohdhl+9QLBZQsgqw9BwMLY1UKsUSFQJbFeUbqqpCkiRYloXJZAKu8eRCyGRg3d2gYNuwqg/Q7VukszmSTEUyErICmYilRIKJT0mQWCwWg2EYmE6n4Or1OsKRKPKmhcp9FcVyBZpeIJjI5zXk8lmktCzSOR2KmiQmIkTxsuHnCxsNBINByJKM0jUpvWQjQ8RCPA5BEBjicRWPZiLbXzRsNpssoGkaK4/2RE0mWc8uQQ1OoX2kl5mm+Vmy4zgIBAKIRqMIh8Nk0iEG3f+GSCQCnufZAMfjMbhOp4NarQbXddFqtf4M1dE5tNttzOdzcKvVCovF4l9Qo+VyyX7MB+tswtkMTSGqAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"3 2 example\"\n        title=\"3 2 example\"\n        src=\"/static/a5b66f8229f94f3d8ec23b769e775ed9/fcda8/3-2.example.png\"\n        srcset=\"/static/a5b66f8229f94f3d8ec23b769e775ed9/12f09/3-2.example.png 148w,\n/static/a5b66f8229f94f3d8ec23b769e775ed9/e4a3f/3-2.example.png 295w,\n/static/a5b66f8229f94f3d8ec23b769e775ed9/fcda8/3-2.example.png 590w,\n/static/a5b66f8229f94f3d8ec23b769e775ed9/efc66/3-2.example.png 885w,\n/static/a5b66f8229f94f3d8ec23b769e775ed9/c83ae/3-2.example.png 1180w,\n/static/a5b66f8229f94f3d8ec23b769e775ed9/764d7/3-2.example.png 1782w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<ul>\n<li>HTML 파일을 PDF 저장하여 첨부파일로 전송한다.</li>\n<li><code class=\"language-text\">ejs.renderFile</code> 결과 HtmlCode <code class=\"language-text\">pdf.create</code>로 전송</li>\n<li><code class=\"language-text\">htmlCode</code>를 buffer로 생성하여 resolve</li>\n<li>buffer를 <code class=\"language-text\">attachments</code> filename(pdf 파일명), content(pdf 파일) 기입</li>\n</ul>\n<br />\n<p><strong>전송 결과</strong></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 38.513513513513516%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA10lEQVQoz4VRWw7CMAzr/c/AJfjjGkj8cIAhjT3Yk21tEpOyMbVjgkhW08Zx69RUVQVr7QXAQUROilYBmQO7QBxhzfR9h2kar7o5MvNZV/orqFDuG9tz07SD3O45mrYGOcJvsUXAOdhxxKhgoui1hkigYGH2FQ7EtI/gtNmDPo3q1/kXypK/ObRyjG8OZxHmzLLaspNFkiRI0xT8eKArChRlCeHY/iq4tbcNf3uWZcjyHFYFB/3Mqq6/eJHgdg0t+3wWZrT9E4544bhoLD8F9392qQfjCPECsTJ2qwc1U2sAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"3 1 result\"\n        title=\"3 1 result\"\n        src=\"/static/a9f439e9f24448de6773a88e2f336a8d/fcda8/3-1.result.png\"\n        srcset=\"/static/a9f439e9f24448de6773a88e2f336a8d/12f09/3-1.result.png 148w,\n/static/a9f439e9f24448de6773a88e2f336a8d/e4a3f/3-1.result.png 295w,\n/static/a9f439e9f24448de6773a88e2f336a8d/fcda8/3-1.result.png 590w,\n/static/a9f439e9f24448de6773a88e2f336a8d/efc66/3-1.result.png 885w,\n/static/a9f439e9f24448de6773a88e2f336a8d/c83ae/3-1.result.png 1180w,\n/static/a9f439e9f24448de6773a88e2f336a8d/ee515/3-1.result.png 1269w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 36.486486486486484%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA9ElEQVQoz22R647CIBCFeUdjXVd9Z1cTEzfqL6290CoYtUDL2aFpWdpI8oXMnDMzXNhkNkf0vUQ0X3xgiSnts8WqZdrlPnqpxyT6AiuKEsbUUEoR2lNVaoByqCAeeeu6QXxNwMryhqZpoLWBIdqdBoTLEtpaGGt9znn+azQsaUmSgkkpu6LQbLDdbPCzXmO72yE7nYA4RnU+Y/+7x+F4bJv4gd2gnHMwIaRP9oI7cZqm1CNGkmWQZIQQMPc78jwHp9gNHdc5jRqKgWCDa/VLPh4oyVePtN7vDuAbcl60b/F+V4NPcHHP8/nCiwhzY69708vlij+06Pt1GkZ+EwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"3 2 result\"\n        title=\"3 2 result\"\n        src=\"/static/e2c49186face02923c24ecad91d6ca5c/fcda8/3-2.result.png\"\n        srcset=\"/static/e2c49186face02923c24ecad91d6ca5c/12f09/3-2.result.png 148w,\n/static/e2c49186face02923c24ecad91d6ca5c/e4a3f/3-2.result.png 295w,\n/static/e2c49186face02923c24ecad91d6ca5c/fcda8/3-2.result.png 590w,\n/static/e2c49186face02923c24ecad91d6ca5c/efc66/3-2.result.png 885w,\n/static/e2c49186face02923c24ecad91d6ca5c/47aef/3-2.result.png 1063w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<br />\n<hr />\n<h3 id=\"▸-error\" style=\"position:relative;\"><a href=\"#%E2%96%B8-error\" aria-label=\"▸ error permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>▸ error</h3>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\">Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at\n535 5.7.8  https://support.google.com/mail/?p=BadCredentials y28sm48092065pfq.48 - gsmtp</code></pre></div>\n<ul>\n<li><code class=\"language-text\">service: gmail</code> 사용 시 에러가 발생할 수 있다.</li>\n</ul>\n<br />\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 35.810810810810814%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA6ElEQVQoz3VRyW7DIBTk/7+s50bJoUodO/WKbXxxaIKBKROMVXd50mjeBm8Tt5tGVdXIsgzX60fgC87nd+R5juPphKIo8Ho4YBxHULz3AdhJMukXxiwwxmBZ9px0a+1mUyecc1EP7H5AtG2LpmkwDAO6roOUcuO+78F4yqEvoa7rNd4FHlCWJeZ5hlBKgeBITODH1MkJtPnpNE2bzVwVbKnuqOQDba9jh7FVv2s77sn/8n+HtUlHGD2Cb4TW+lmZVVNnHIk6H6Rl/yXRH4u/vBnMnxaCy42HCEi8HiF1Gzv9B2tc393zSF/1iR0YwTyuuwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"solution\"\n        title=\"solution\"\n        src=\"/static/50e99c85a2360c514fafbe46981d9ded/fcda8/solution.png\"\n        srcset=\"/static/50e99c85a2360c514fafbe46981d9ded/12f09/solution.png 148w,\n/static/50e99c85a2360c514fafbe46981d9ded/e4a3f/solution.png 295w,\n/static/50e99c85a2360c514fafbe46981d9ded/fcda8/solution.png 590w,\n/static/50e99c85a2360c514fafbe46981d9ded/8ce52/solution.png 681w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<ul>\n<li>구글 계정에서 보안 수준 앱의 엑세스를 허용하면 가능하다.</li>\n</ul>\n<br />\n<p><strong><a href=\"#-%EB%AA%A9%EC%B0%A8\">⬆ 목차</a></strong></p>\n<hr />\n<h2 id=\"-생각해-보며\" style=\"position:relative;\"><a href=\"#-%EC%83%9D%EA%B0%81%ED%95%B4-%EB%B3%B4%EB%A9%B0\" aria-label=\" 생각해 보며 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>🤔 생각해 보며</strong></h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 107.43243243243244%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAYAAABG1c6oAAAACXBIWXMAAAsTAAALEwEAmpwYAAACSklEQVQ4y6WUSZLaQBBFdQsmoXkoTUiMDVgdYUd02IdxN8MpuAiwIII9cAGOwQJWbDjCd1YZEcJuwN1e/CipKuupfmaqpOPxiMPhgP1+/1/ijNPpBGkymeD7ywu+Pqfo97+g1+vR2Bfiz4/E47rdLtI0xXa7hfTz9RWG44ElTST1GmqBA1NToFVllEolFAqFuyoWi2LksavVCtJoPAYLIjiMIY4DhJ4LwzCgKApUVX0oTdNELB83mw2k4YiAYQwvaSGICOwHQp7nIAg4XEe1WhWbuPLP+TkOX6/XkAZvb3AcF369jSQM0AwYfMeCTl+sXjb9DbkJHHPLzKVJRUAsXYVCAbIsi0CZVD1LrlR+P9OaWM/pAhyOR3DCEKyRIG43kPSeUe+lCJsdeLWE0hDDDyNYDoPpejB0DYZpwbBs6IYJk9ypqpYDDgawLAsKTXY6bdRbLfGu0yZNN+jEGkwS32wJoC5ghuWIGP6ha+BwKADlcplyydBoJki6KVw/pMqpqMiZbVlYls/puGl5cD5hljPTNITtuP1ERWKwqIXeq+ztKueAfJKP3J4b1BBQtUPXvtkuD4EigBYdzweLEth+JArBOyADPu7DPJAmeT68uIH2tx8I6i2YtiMK8fkTUhPbzEPtKaVmb4mT6uff61NAvuDRrxclBKKCyJXyld2PWT4v2vTepEbnubx3sneBWR9yIL8xRFM/yNlDoG3bApZdRX9avKd8fO5yYFeWP6Jsz+U+5Nf2crnEdDrFfD4Xms1m/6wsfrFYYLfb4RdhjcuN/i45/AAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"4 1 example\"\n        title=\"4 1 example\"\n        src=\"/static/0f6dd508f993a4eb80e2ff0342eb9382/fcda8/4-1.example.png\"\n        srcset=\"/static/0f6dd508f993a4eb80e2ff0342eb9382/12f09/4-1.example.png 148w,\n/static/0f6dd508f993a4eb80e2ff0342eb9382/e4a3f/4-1.example.png 295w,\n/static/0f6dd508f993a4eb80e2ff0342eb9382/fcda8/4-1.example.png 590w,\n/static/0f6dd508f993a4eb80e2ff0342eb9382/efc66/4-1.example.png 885w,\n/static/0f6dd508f993a4eb80e2ff0342eb9382/c83ae/4-1.example.png 1180w,\n/static/0f6dd508f993a4eb80e2ff0342eb9382/0486e/4-1.example.png 2008w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.86486486486486%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB9ElEQVQ4y62SO44aQRRF2QEB2O5/ffr/w4ysySya0LODaQjGm0OwAXYAZCQGhNgBEhmI+PpVARajmbETB0e3+1XVrapbr3E8HnE+n/8Lp9MJjd1uh5eXn6jrZwwGNTHAoK7p/8Yzaqr9QdW0DvTc4XCoUfXZbIbGfD6HaVn4ZNgwHA+WacB0XNgeg2XbsJmAbRhwv3zWYxaNOaSuRfOo1mq10G630Ww2MRqN0FgsFvB9H1xIJEUXWdlBkiSQYQzOBYQfQAgByblWISUkqX9Vfq07joPJZHIx1AU6TZAWePxeoZtnKKIIWRTCF4zgkMpAQQacMbiuq/E8T2OaJsbj8Z0h7cBJu98e0SlLdIoSD0WGhyxGN0tQ5jkKRRIj9AUYmXxsSLuqwSBOIYJQX0NlaFq2zvE1Dmza3PnXCdWgT7ml5VfklGFKuYa+RBjFiEhvhHfK6Op/vbKkB0jSDBkZBpSbuhajMbVQ5SYUnOkcFTezN4ZSCng0OUpzhEmGIAgQxgmS0EccXMhjeiCqM3Y1ovnsio6I4tCvrJpRnc72OBzqOZ0T9aWl8qNdbzhUU6cwqCffQ/Wj7sPlcokfT0+oqj5Roer1Llr10NN64f77nn7/sq5H66bTKRqHwwHb7Rar1S+s12vS1busP6pf12w2G+z3e/wGC+n7UY65J2MAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"4 2 example\"\n        title=\"4 2 example\"\n        src=\"/static/3dc1bf73ac8c7e3422ce4ef88efa98d9/fcda8/4-2.example.png\"\n        srcset=\"/static/3dc1bf73ac8c7e3422ce4ef88efa98d9/12f09/4-2.example.png 148w,\n/static/3dc1bf73ac8c7e3422ce4ef88efa98d9/e4a3f/4-2.example.png 295w,\n/static/3dc1bf73ac8c7e3422ce4ef88efa98d9/fcda8/4-2.example.png 590w,\n/static/3dc1bf73ac8c7e3422ce4ef88efa98d9/efc66/4-2.example.png 885w,\n/static/3dc1bf73ac8c7e3422ce4ef88efa98d9/c83ae/4-2.example.png 1180w,\n/static/3dc1bf73ac8c7e3422ce4ef88efa98d9/08485/4-2.example.png 2014w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.64864864864865%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB/ElEQVQ4y6WTyW7aUBSG/QgsHEbPDpMB01KTMJMURW2lqgpDYMlDpO8Cr8GSVwGxgwWzYMEGpL/3mCENTSSUWvp0fa99vnuuzzG3Wq2w3W7xv9dut8N6vQZHwsVigelkumfKmM1eoPl0htnsfegdcpCL22w2eP79jJu0ha8P98jlcshmsyfO5+fk83lYloVms4nxeAxuPp+jXK1B8AcRiEWhyxKuGQFVtolcq5AFH5xOJ9wuF1xneDweOBwOWz4YDMBNJhPU6jX4VB9UlQXLImRFgiSJUBXFRlFktv42FON2u1EsFtHr9fbCRr2BqGkgXUwjXUghmUrANE1bJksSRJE2oFG0x78hKWVaKBRehE9PdWj+COJWCmYiiU9GCIlYBLGQH2G/fhJdLKzWquCv+P0xWFaSqsHrE+zsVHZckY3CO9J/hFTySrkMp8uNzLdfuH34ieRtCvkvJu6sOApsTMYM6OxbXZQhCctMeMUWsz8ekfn+iDirthUN2UfXNRXaoSgXCyuVCnieRzBswLzJwPictKsXDwcYwf1Rz0RHFPaJSPiqyiSkPqOHlMURiSEI4qu1c0hKsdTgpwwbjYa9i6brh75T7AyVQx8e799C01gBvV6USiX0+/19ht1uF+12G61W68N0Oh2MRiNwy+USJKXJcDj8EBRL/zG5/gAYmZE/hR1uzwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"4 3 example\"\n        title=\"4 3 example\"\n        src=\"/static/52ed525479369ac9573d690adb9f67d9/fcda8/4-3.example.png\"\n        srcset=\"/static/52ed525479369ac9573d690adb9f67d9/12f09/4-3.example.png 148w,\n/static/52ed525479369ac9573d690adb9f67d9/e4a3f/4-3.example.png 295w,\n/static/52ed525479369ac9573d690adb9f67d9/fcda8/4-3.example.png 590w,\n/static/52ed525479369ac9573d690adb9f67d9/efc66/4-3.example.png 885w,\n/static/52ed525479369ac9573d690adb9f67d9/c83ae/4-3.example.png 1180w,\n/static/52ed525479369ac9573d690adb9f67d9/21b4d/4-3.example.png 1280w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<ul>\n<li>이메일 전송 서비스를 활용하여 비밀번호 변경 메일을 구성해보자</li>\n<li>데이터를 동적으로 할당 받아 html 전송한다.</li>\n</ul>\n<br />\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 36.486486486486484%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAvElEQVQoz31QiwqDMAzs///CPmLfsO+QwYShQoXZdYpt0t7aqvioW+BoQ8Jd7oRSClLKu9b6wsxX7/0rAH4qnAJrHWdiHA0+ff8kpptjd9+Q/SR0zCCihJzQkK9lh7dWYOL/ly2EkczahNhvLxXz5S6A4zsvJFai9ZI9OInv5pbgnIPI81n/i3Kstm1RFAUeZQmqKnQBddPEhd2eOLOUh42kHmGMwTAMk/XQZxniUFvC3DLDBmuR9CyOKPAF/Bsm+EQNkOIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"4 result\"\n        title=\"4 result\"\n        src=\"/static/1054517d9ed32670a3af3996fea72008/fcda8/4.result.png\"\n        srcset=\"/static/1054517d9ed32670a3af3996fea72008/12f09/4.result.png 148w,\n/static/1054517d9ed32670a3af3996fea72008/e4a3f/4.result.png 295w,\n/static/1054517d9ed32670a3af3996fea72008/fcda8/4.result.png 590w,\n/static/1054517d9ed32670a3af3996fea72008/efc66/4.result.png 885w,\n/static/1054517d9ed32670a3af3996fea72008/c83ae/4.result.png 1180w,\n/static/1054517d9ed32670a3af3996fea72008/e8e04/4.result.png 1270w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<p>전송 결과입니다.</p>\n<br />\n<p><strong><a href=\"#-%EB%AA%A9%EC%B0%A8\">⬆ 목차</a></strong></p>\n<hr />\n<br />\n<blockquote>\n<p>출처</p>\n<p><a href=\"https://github.com/bynodejs/nodemailer\" target=\"_blank\">GitHub > nodemailer</a></p>\n</blockquote>\n<h1 id=\"여러분의-댓글이-큰힘이-됩니다-๑̀ㅂ́و✧\" style=\"position:relative;\"><a href=\"#%EC%97%AC%EB%9F%AC%EB%B6%84%EC%9D%98-%EB%8C%93%EA%B8%80%EC%9D%B4-%ED%81%B0%ED%9E%98%EC%9D%B4-%EB%90%A9%EB%8B%88%EB%8B%A4-%E0%B9%91%CC%80%E3%85%82%CC%81%D9%88%E2%9C%A7\" aria-label=\"여러분의 댓글이 큰힘이 됩니다 ๑̀ㅂ́و✧ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>여러분의 댓글이 큰힘이 됩니다. (๑•̀ㅂ•́)و✧</h1>","frontmatter":{"title":" 이메일 📬 ▻ nodemailer ","date":"September 16, 2019"}}},"pageContext":{"slug":"/nodejs/nodemailer/","previous":{"fields":{"slug":"/nodejs/pm2/"},"frontmatter":{"title":" 프로세스 관리 ⚙️ ▻ pm2 ","category":"Node Js"}},"next":{"fields":{"slug":"/project/resume/1/"},"frontmatter":{"title":" 이력서 홈페이지 💎 ▻ 1탄 ","category":"Project"}}}},"staticQueryHashes":["3128451518","3956431471"]}