LoginSignup
1
2

More than 1 year has passed since last update.

お名前ドットコムで登録したメールサーバーと「nodeemailer」を連携させてみた

Last updated at Posted at 2021-03-03

最近気温の差が激しい。。。

今日はお名前ドットコムで登録した独自ドメインでメール送信を行いたいと思います。

早速説明に参りたいと思います。

はじめに

お名前ドットコムのドメイン登録のやり方は説明致しませんので、まだ登録していない方はご登録してから本記事をご覧ください。

また、メールを送信するためにはレンタルサーバーの登録が必要なので、こちらもご登録してから本記事をご覧ください。

nodeemailerでメール送信

メールアドレス登録

お名前ドットコムの「レンタルサーバー一覧」から登録したドメインでログインしてください。

image.png

このような画面になると思います。

「メール」をクリック

まずは、「メールアドレスを追加」でメールアドレスを追加してください。

無題.png

パスワードは忘れずに!この後使います!!

また、ここで登録したメールアドレスは「info@example.com」として説明していきます。

次に追加したメールアドレスの「詳細」へ。

ここで、受信サーバーやら送信サーバーの情報が表示されます。

この情報をもとにnodeemailerでメールを送信していきます。

transporterの作成

また、今回nodeemailerは「FirebaseFunctions」で行います。

index.js
const nodemailer = require('nodemailer')

exports.sendContactMail = functions.region('asia-northeast1').https.onCall((data, context) => {
  const mailAddress = `info@example.com`
  const password = `メール作成したときのパスワード`
  const transporter = nodemailer.createTransport({
    pool: true,
    host: 'mail**.onamae.ne.jp',
    port: 465,
    secure: true,
    auth: {
      user: mailAddress,
      pass: password
    }
  })
})

mailOptionsの作成

次に、誰にメールを送信するか、タイトルは何か、メールの内容を書いていきたいと思います。

index.js
const nodemailer = require('nodemailer')

exports.sendContactMail = functions.region('asia-northeast1').https.onCall((data, context) => {
  const mailAddress = `info@example.com`
  const password = `メール作成したときのパスワード`
  const transporter = nodemailer.createTransport({
    pool: true,
    host: 'mail**.onamae.ne.jp',
    port: 465,
    secure: true,
    auth: {
      user: mailAddress,
      pass: password
    }
  })

  // ここから追加
  const mailOptions = {
    from: mailAddress,
    to: data.to,
    subject: 'タイトル',
    html: `
      <p>${data.name} 様</p>
      <p>メールを受け取りました</p>
      <p>本メールへの返信によるご質問は承っておりません。</p>
      <p>今後とも何卒よろしくお願いいたします。</p>
      <p>メール送信者より</p>
      `
  }

  return transporter.sendMail(mailOptions, (erro, info) => {
    if (erro) {
      return { 
        error: erro.toString(),
        message: 'To send mail is failed'
     }
    }
    return { 
      message: 'To send mail is successed'
    }
  })
})

このようにしてメールを送信する関数を作成することができました!

後は呼び出して送信するだけ!!

メール送信

const sendMailFunc = this.$function.httpsCallable('sendContactMail')

sendMailFunc({
  to: 'akki@gmail.com'
  name: 'akki'
})

これで実際にメールが届いたら成功です!

ただし、メールサーバーを作成したばかりだとメールが届かない場合があります。

なので、2日ほど開けてからまた実行して見て下さい!

以上、「お名前ドットコムで登録したメールサーバーと「nodeemailer」を連携させてみた」でした!

また、何か間違っていることがあればご指摘頂けると幸いです。

他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!

あと、最近「ココナラ」で環境構築のお手伝いをするサービスを始めました。

気になる方はぜひ一度ご相談ください!

Thank you for reading

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2