質問編集履歴

3

タイトル変更

2022/02/05 08:45

投稿

madamdaama
madamdaama

スコア45

test CHANGED
@@ -1 +1 @@
1
- nodemailerで送信したあとに、redirectでページジャンプできません!
1
+ nodemailerで送信したあとに、無限ループが始まりredirectでページジャンプできません!
test CHANGED
@@ -1,5 +1,5 @@
1
1
  制作中のホームページの問い合わせフォームで、nodemailerでGmailを送信させたあとに、「メッセージは送信されました」と表記されたページ('/aftercontact')へredirectしたいのですが、されません。
2
- メールはちゃんと送信されるのですが、その後の処理がなされないようでページ移動することなく処理が延々と続きしばらくしたら「このペジは表示できせん」と表示されてredirectは処理されずに終わり
2
+ メールはちゃんと送信されるのですが、その後の処理がなされないようでページ移動することなく、無限ルプが始redirectは処理されません
3
3
 
4
4
  該当部のコードは以下の通りです。
5
5
 
@@ -67,7 +67,7 @@
67
67
  ページにredirectされないだけではなく、ターミナルにconsole.log(Email_sent)されないので、何かしら問題があるのでしょうがわかりません。
68
68
  ('/aftercontact')のページは’localhost:3000/aftercontact’で表示されるので、('/aftercontact')ページ自体には問題ないと思うのですが、クロームのデベロッパーツールを使うと、
69
69
 
70
- Failed to load resource: the server responded with a status of send url.js:1 404 (Not Found)
70
+ Failed to load resource: the server responded with a status of 404 (Not Found)   send url.js:1
71
71
 
72
72
  と表示されるので、転送先urlが認識されていないようです。
73
73
  全てのページファイルは同じディレクトリに保存されています。

2

文書の追加

2022/02/05 05:07

投稿

madamdaama
madamdaama

スコア45

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,5 @@
1
1
  制作中のホームページの問い合わせフォームで、nodemailerでGmailを送信させたあとに、「メッセージは送信されました」と表記されたページ('/aftercontact')へredirectしたいのですが、されません。
2
- メール自体はちゃんと送信されるのですが、その後の処理がなされないようでページ移動することなく処理が延々と続き、しばらくしたら「このページは表示できません」と表示されてredirectは処理されずに終わります。
2
+ メールはちゃんと送信されるのですが、その後の処理がなされないようでページ移動することなく処理が延々と続き、しばらくしたら「このページは表示できません」と表示されてredirectは処理されずに終わります。
3
3
 
4
4
  該当部のコードは以下の通りです。
5
5
 
@@ -64,5 +64,11 @@
64
64
  });
65
65
  ```
66
66
 
67
+ ページにredirectされないだけではなく、ターミナルにconsole.log(Email_sent)されないので、何かしら問題があるのでしょうがわかりません。
67
- ページにredirectされないだけではなく、ターミナルにconsole.log(Email_sent)されないので、何かしら問題があるのでしょうがわかりません。('/aftercontact')のページは’localhost:3000/aftercontact’で表示されるので、('/aftercontact')ページ自体には問題ありません。
68
+ ('/aftercontact')のページは’localhost:3000/aftercontact’で表示されるので、('/aftercontact')ページ自体には問題ないと思うのですが、クロームのデベロッパーツールを使うと、
69
+
70
+ Failed to load resource: the server responded with a status of send url.js:1 404 (Not Found)
71
+
72
+ と表示されるので、転送先urlが認識されていないようです。
73
+ 全てのページファイルは同じディレクトリに保存されています。
68
74
  何か原因があるのでしょうか? 

1

コードを追加しました。

2022/02/05 03:37

投稿

madamdaama
madamdaama

スコア45

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,58 @@
1
1
  制作中のホームページの問い合わせフォームで、nodemailerでGmailを送信させたあとに、「メッセージは送信されました」と表記されたページ('/aftercontact')へredirectしたいのですが、されません。
2
- メール自体はちゃんと送信されるのですが、その後の処理がなされないようで、しばらくしたら「このページは表示できません」と表示されてredirectは処理されずに終わります。
2
+ メール自体はちゃんと送信されるのですが、その後の処理がなされないようでページ移動することなく処理が延々と続き、しばらくしたら「このページは表示できません」と表示されてredirectは処理されずに終わります。
3
3
 
4
4
  該当部のコードは以下の通りです。
5
5
 
6
6
  ```node.js
7
+ const transporter = nodemailer.createTransport({
8
+ host: "smtp.gmail.com",
9
+ port: 465,
10
+ secure: true,
11
+ auth: {
12
+ type: 'OAuth2',
13
+ user: process.env.EMAILADDRESS,
14
+ pass: process.env.EMAIL_PASSWORD,
15
+ clientId: process.env.CLIENTID,
16
+ clientSecret: process.env.CLIENT_SECRET,
17
+ refreshToken: process.env.REFRESH_TOKEN,
18
+ }
19
+ });
20
+
21
+
22
+ app.post('/contact', (req, res, next) => {
23
+ const username = req.body.username;
24
+ const useremail = req.body.useremail;
25
+ const usermessege = req.body.usermessege;
26
+ const errors = [];
27
+
28
+
29
+ if (username === '') {
30
+ errors.push('お名前がありません!');
31
+ }
32
+ if (useremail === '') {
33
+ errors.push('メールアドレスがありません!');
34
+ }
35
+ if (usermessege === '') {
36
+ errors.push('メッセージがありません!');
37
+ }
38
+ if (errors.length > 0) {
39
+ res.render('contact.ejs', { errors: errors });
40
+ } else {
41
+ next();
42
+ }
43
+ },
44
+ (req, res) => {
45
+ const username = req.body.username;
46
+ const useremail = req.body.useremail;
47
+ const usermessege = req.body.usermessege;
48
+ const mailOptions = {
49
+ from: process.env.EMAILADDRESS,
50
+ to: process.env.EMAILADDRESS2,
51
+ subject: '問い合わせ',
52
+ text: 'From:' + ' ' + username + ' ' + '/Email:' + ' ' + useremail + ' ' + '/Message:' + ' ' + usermessege
53
+ };
54
+
7
- transporter.sendMail(mailOptions, function (error, info) {
55
+ transporter.sendMail(mailOptions, function (error, info) {
8
56
  if (error) {
9
57
  console.log(error);
10
58
  } else {
@@ -12,6 +60,8 @@
12
60
  res.redirect('/aftercontact');
13
61
  }
14
62
  });
63
+
64
+ });
15
65
  ```
16
66
 
17
67
  ページにredirectされないだけではなく、ターミナルにconsole.log(Email_sent)されないので、何かしら問題があるのでしょうがわかりません。('/aftercontact')のページは’localhost:3000/aftercontact’で表示されるので、('/aftercontact')ページ自体には問題ありません。