質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Email

Email(電子メール)とは、ネットワークを介してメッセージを送受信するシステム。インターネット上で利用するメールを、Emailと呼ぶ場合が多いです。 インターネットの普及に伴い、現在では一般的なサービスとなっています。文字の他にも、画像、音声、プログラムなどを送受信することが可能です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

1170閲覧

Reactでメール機能をつけたい。

taipon

総合スコア3

Email

Email(電子メール)とは、ネットワークを介してメッセージを送受信するシステム。インターネット上で利用するメールを、Emailと呼ぶ場合が多いです。 インターネットの普及に伴い、現在では一般的なサービスとなっています。文字の他にも、画像、音声、プログラムなどを送受信することが可能です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2022/04/11 12:36

編集2022/04/11 14:36

前提

Email.jsのサービスを利用してメールを送りたい。

起きている問題

・ビルドしてお問い合わせを送信ボタンを押したが送れない。
・エラーは出ていない。

ソースコード(関連するソースコード/全ソースコード)

import React,{useState} from 'react'; import { init, send } from "emailjs-com"; const Form = () => { const [username, setUserName] = useState(''); const [company ,setCompany] = useState(''); const [mail, setMail] = useState(''); const [title, setTitle] = useState(''); const [message, setMessage] = useState(''); const sendMail = () => { const userID = process.env.REACT_APP_USER_ID; const serviceID = process.env.REACT_APP_SERVICE_ID; const templateID = process.env.REACT_APP_TEMPLATE_ID; if( userID !== undefined && serviceID !== undefined && templateID !== undefined ){ init(userID); const template_param = { to_username: username, company: company, from_email: mail, title: title, message: message, }; send(serviceID, templateID,template_param).then(() => { window.alert("お問い合わせを送信いたしました。"); setUserName(''); setCompany(''); setMail(''); setMessage(''); setTitle(''); }); } } const handleClick = (e: { preventDefault: () => void; }) =>{ e.preventDefault(); sendMail() } const handleCanceled = () => { setUserName(''); setCompany(''); setMail(''); setMessage(''); setTitle(''); } const disableSend = username === '' || mail === '' || title === '' || message === ''; return ( <div> <h2>お問い合わせ</h2> <p>お問い合わせは、下記のフォームからお願いします。</p> <form> <div> <label htmlFor="nameForm">ご氏名:</label> </div> <input type="text" id="nameForm" className="formInput" value={username} onChange={(e) => setUserName(e.target.value)}/> <div> <label htmlFor="companyNameForm">会社名:</label> </div> <input type="text" id="companyNameForm" className="formInput" value={company} onChange={(e) => setCompany(e.target.value)} required /> <div> <label htmlFor="mailForm">メールアドレス:</label> </div> <input type="email" id="mailForm" className="formInput" value={mail} onChange={(e) => setMail(e.target.value)} /> <div> <label htmlFor="mailTitleForm">件名:</label> </div> <input type="text" id="mailTitleForm" className="formInput" value={title} onChange={(e) => setTitle(e.target.value)} /> <div> <label htmlFor="mailContentForm">お問い合わせ内容:</label> </div> <textarea id="mailContentForm" className="formInput" value={message} onChange={(e) => setMessage(e.target.value)} rows={5} /> <div className="btns"> <div> <button onClick={handleClick} disabled={disableSend}> <strong>お問い合わせを送信する</strong> </button> </div> <div> <button onClick={handleCanceled}> <strong>キャンセル</strong> </button> </div> </div> </form> </div> ) } export default Form

問題解決するために試したこと

コードを再度打ち直した。
vscodeの再起動。

https://zenn.dev/azunasu/articles/3a49cc1a8c6839
上の記事を参考にしています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taipon

2022/04/12 02:35

ありがとうございます! そうだったのですね! 帰宅次第試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問