🗂
IPアドレスを取得して、メールで送信する
を使えば、ブラウザを開いている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