[英]Send IP Address in email with node.js
因此,我試圖通過node.js向我發送自己的IP地址,到目前為止,我們都空手而歸。 到目前為止,我的代碼如下所示:
var exec = require("child_process").exec;
var ipAddress = exec("ifconfig | grep -m 1 inet", function (error, stdout, stderr) {
ipAddress = stdout;
});
var email = require('nodemailer');
email.SMTP = {
host: 'smtp.gmail.com',
port: 465,
ssl: true,
user_authentication: true,
user: 'sendingemail@gmail.com',
pass: 'mypass'
}
email.send_mail({
sender: 'sendingemail@gmail.com',
to: 'receivingemail@gmail.com',
subject: 'Testing!',
body: 'IP Address of the machine is ' + ipAddress
},
function(error, success) {
console.log('Message ' + success ? 'sent' : 'failed');
console.log('IP Address is ' + ipAddress);
process.exit();
}
);
到目前為止,它正在發送電子郵件,但從未插入IP地址。 它將適當的IP地址放入我可以看到的控制台日志中,但是無法通過電子郵件發送它。 誰能幫我看看我在代碼中做錯了什么?
這是因為send_mail
函數在exec
返回ip之前啟動。
因此,只要exec返回ip,就開始發送郵件。
這應該工作:
var exec = require("child_process").exec;
var ipAddress;
var child = exec("ifconfig | grep -m 1 inet", function (error, stdout, stderr) {
ipAddress = stdout;
start();
});
var email = require('nodemailer');
function start(){
email.SMTP = {
host: 'smtp.gmail.com',
port: 465,
ssl: true,
user_authentication: true,
user: 'sendingemail@gmail.com',
pass: 'mypass'
}
email.send_mail({
sender: 'sendingemail@gmail.com',
to: 'receivingemail@gmail.com',
subject: 'Testing!',
body: 'IP Address of the machine is ' + ipAddress
},
function(error, success) {
console.log('Message ' + success ? 'sent' : 'failed');
console.log('IP Address is ' + ipAddress);
process.exit();
}
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.