반응형

1.nodemailer 설치 

npm install nodemailer

2.mailgun 가입하기

https://www.mailgun.com/

 

Mailgun Technologies

Powerful Transactional Email APIs that enable you to send, receive, and track emails, built with developers in mind. Learn more today!

www.mailgun.com

mailgun 가입하고 보내고 싶은 실제 메일을 verify 해줘야함

여기에 넣고 메일 확인할것!

3.mailgun api,domain 확인하기 

이것도 마찬가지로 sending 누르면 apikey와 domain을준다!

 

 

그러면 코드로 구현을해보자!

 

utils.js

api,domain은 env 파일에서 불러와서 사용했다.

require("dotenv").config({ path: "./src/.env" });
import nodemailer from "nodemailer";
import mgTransport from "nodemailer-mailgun-transport";

const MAILGUN_API = process.env.api_key;
const MAILGUN_DOMAIN = process.env.domain;


export const sendMail = (email) => {
  const options = {
    auth: {
      api_key: MAILGUN_API,
      domain: MAILGUN_DOMAIN,
    },
  };
  const client = nodemailer.createTransport(mgTransport(options));
  return client.sendMail(email);
};

export const sendSecretMail = (address, secret) => {
  const email = {
    from: "hong@honggram.com",
    to: address,
    subject: "Login Secret for honggram",
    html: `<h1> your secret code</h1> 
    <br><h4>${secret}</h4><br>for login honggram`,
  };
  return sendMail(email);
};

sever.js

require("dotenv").config({ path: "./src/.env" });
import { GraphQLServer } from "graphql-yoga";
import logger from "morgan";
import schema from "./schema";
import {sendSecretMail } from "./utils";

sendSecretMail("보내고싶은이메일", "시크릿문자");

const PORT = process.env.PORT || 4000;
const server = new GraphQLServer({ schema });

server.express.use(logger("dev"));

server.start({ port: PORT }, () => {
  console.log(`Server running on http://localhost:${PORT}`);
});

 

 

이렇게 import로 sendSecretMail을 가져와서 그곳에 address와 secret을 주고 실행시키면 

실제 메일이 보내진다!

반응형

+ Recent posts