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: "ユーザー名",//[email protected]みたいなメールアドレスを指定する
pass: "パスワード"//メールアドレスを作るときに指定したパスワードを指定する
}
});
//メール情報の作成
var message = {
from: '[email protected]',//さきほどのユーザー名と同じ
to: '[email protected]',//送信先
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: "ユーザー名",//[email protected]みたいなメールアドレスを指定する
pass: "パスワード"//メールアドレスを作るときに指定したパスワードを指定する
},
tls: {
rejectUnauthorized: false,
},
});
という感じで、rejectUnauthorizedを付与するとうまく動くっぽいです。
おわり
コメント