🗂

IPアドレスを取得して、メールで送信する

2023/01/25に公開

https://ipinfo.io
を使えば、ブラウザを開いているPCのIPアドレスやロケーションを取得することができます

今回は、それらの情報をメールに送る仕組みを開発しました

server/api/ipinfo.ts
import nodemailer from 'nodemailer'

export default defineEventHandler(async(event)=>{
    const info:string = await $fetch('https://ipinfo.io?token=*********&callback')

    const transporter = nodemailer.createTransport({
        service: "Gmail",
        auth: {
            user: 'my-email@gmail.com',
            pass: 'password',
        }
    });
    const res = await transporter.sendMail({
        from:'my-email@gmail.com',
        to:'my-email@gmail.com',
        subject:'Test',
        text:JSON.stringify(info)
    })

    return {info:info,res:res}
})
app.vue
<script setup lang="ts">
const {data} = await useFetch('/api/ipinfo')
const {res,info} = data

</script>

<template>
  <NuxtPage></NuxtPage>
</template>

Discussion