Xサーバーというレンタルサーバー上で
- Node.js + Nodemailer
を使って、Xサーバーで作ったメールアドレスからメールを送信する方法についてメモ。
まず、SSHで以下のコマンドを打って、nodemailerモジュールをインストールします。
npm install nodemailer
次に、以下のコードを書きます。
index.js
var nodemailer = require('nodemailer'); //SMTPサーバ基本情報設定 var smtp = nodemailer.createTransport({ host: "sv●●●●.xserver.jp", port: 465,//SSL(TLS)で送信する場合は465、使用しない場合は587 secure: true,//trueの場合、サーバーへの接続時に接続はTLSを使用する auth:{ user: "ユーザー名",//info@hoge.comみたいなメールアドレスを指定する pass: "パスワード"//メールアドレスを作るときに指定したパスワードを指定する } }); //メール情報の作成 var message = { from: 'info@hoge.com',//さきほどのユーザー名と同じ to: 'test@gmail.com',//送信先 subject: '件名',//件名 text: '本文'//本文 }; // メール送信 try{ smtp.sendMail(message, function(error, success){ if(error){ console.log("送信に失敗しました"); console.log(error.message); return; } console.log("送信に成功しました"); console.log(success.messageId); }); }catch(e) { console.log("例外が発生しました",e); }
最後に、SSHで以下のコマンドを実行すると、メールを送信できます。
node index.js
localhostからメールを送信する場合は
//SMTPサーバ基本情報設定 var smtp = nodemailer.createTransport({ host: "sv●●●●.xserver.jp", port: 465,//SSL(TLS)で送信する場合は465、使用しない場合は587 secure: true,//trueの場合、サーバーへの接続時に接続はTLSを使用する auth:{ user: "ユーザー名",//info@hoge.comみたいなメールアドレスを指定する pass: "パスワード"//メールアドレスを作るときに指定したパスワードを指定する }, tls: { rejectUnauthorized: false, }, });
という感じで、rejectUnauthorized
を付与するとうまく動くっぽいです。
おわり
コメント