teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

nodemailerの例を追加

2020/08/03 10:03

投稿

miyabi-sun
miyabi-sun

スコア21445

answer CHANGED
@@ -67,4 +67,55 @@
67
67
  個人利用の回線の多くは好き勝手にメールが送信できないよう制限がかけられています。
68
68
 
69
69
  まずCC部分が正常に動作しないのか?そもそもメールが送信出来ないのか?
70
- ……という風に問題を切り分けて考えるようにしてみてください。
70
+ ……という風に問題を切り分けて考えるようにしてみてください。
71
+
72
+ ---
73
+
74
+ 【追記】 CCの指定内容
75
+
76
+ そもそもCCが`;`区切りって何を見て決めたんですか?
77
+ ちょっと調べてみましょう。
78
+
79
+ ソースコードには`nodemailer`という変数が存在します。
80
+ これってこのライブラリを指していますか?
81
+ [https://nodemailer.com/about/](https://nodemailer.com/about/)
82
+
83
+ もしそうなら`;`が問題で確定でしょうね。
84
+ 「Common fields」の「cc」には下記のように記載されています。
85
+
86
+ > cc: Comma separated list or an array of recipients email addresses that will appear on the Cc: field
87
+
88
+ 意訳: Ccフィールドに表示される受信者のメールアドレスのカンマ区切りリスト、または配列
89
+
90
+ 英語能力カスの私が頑張った解読結果ではなく、
91
+ 機械学習のすごいやつ[DeepL](https://www.deepl.com/ja/translator)に翻訳させたので間違いはないでしょう。
92
+
93
+ 許されるのは下記の2つです。
94
+
95
+ - カンマ区切り: `"a@example.com,b@example.com"`
96
+ - 配列: `["a@example.com", "b@example.com"]`
97
+
98
+ JavaScriptは文字列から配列を作るためのメソッドが用意されており、
99
+ [split](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/split)を使う事で行なえます。
100
+
101
+ また、Node.jsはES2015に対応しているので
102
+ [スプレッド構文](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Spread_syntax)が可能です。
103
+ 配列に1個付け足すなど`...`を使えば瞬殺です。
104
+
105
+ コードにするとこんな感じになるんですかね?
106
+
107
+ ```js
108
+ const cc2 = 'xxx@yyy.com;www@qqq.com'.split(';')
109
+
110
+ const message = {
111
+ cc: (cc1 ? [cc1, ...cc2] : cc2),
112
+ }
113
+ ```
114
+
115
+ こんな風に、有名どころのライブラリには
116
+ 作者が残した使い方説明書(Usage)が引っ付いているので、
117
+ それを見る癖をつけるようにしてください。
118
+
119
+ 英語で辛い?
120
+ 1パラグラフ程度ならDeepL様が瞬殺で翻訳してくれるので大丈夫です。
121
+ デスクトップ版を入れておけばわからない文章をドラッグしてCtrl+Cを2回叩くだけで日本語になります。

1

序盤を修正

2020/08/03 10:03

投稿

miyabi-sun
miyabi-sun

スコア21445

answer CHANGED
@@ -1,9 +1,11 @@
1
1
  > メールがうまく配信されません。
2
2
 
3
3
  うまく配信されませんというのは、
4
- そもそも誰にもメールが送られない、CCの全員に送られない、その他が考えらます。
4
+ そもそも誰にもメールが送られない、CCの全員に送られない、その他のどなんでしょうか?
5
- これは自身何が起こっているしっか認識しないと回答出来ません。
5
+ これは回答者という他人から質問文状況を読むだけは全くわかりません。
6
6
 
7
+ なので問題の切り分けをしっかりするようお願いします。
8
+ このフェイズに到達しないと何も手助けは出来ません。
7
9
  とりあえず3点を確認してみてください。
8
10
 
9
11
  - メール送信実行のコールバック関数にデバッグプリントを仕込む