質問編集履歴
3
タイトル変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
nodemailerで送信したあとに、redirectでページジャンプできません!
|
1
|
+
nodemailerで送信したあとに、無限ループが始まりredirectでページジャンプできません!
|
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
制作中のホームページの問い合わせフォームで、nodemailerでGmailを送信させたあとに、「メッセージは送信されました」と表記されたページ('/aftercontact')へredirectしたいのですが、されません。
|
2
|
-
メールはちゃんと送信されるのですが、その後の処理がなされないようでページ移動することなく
|
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
|
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
文書の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
制作中のホームページの問い合わせフォームで、nodemailerでGmailを送信させたあとに、「メッセージは送信されました」と表記されたページ('/aftercontact')へredirectしたいのですが、されません。
|
2
|
-
メール
|
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
|
-
|
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
コードを追加しました。
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')ページ自体には問題ありません。
|