2017-11-26 3 views
0

私はMongoDBのための電子メールの保存をサポートするためにharakaのメールサーバ用のプラグインを作成しようとしているマングースではありません。私はテストが、それは私にこのエラーを与えている電子メールの送信時に プラグインはしかし、細かい実行されている:は()関数harakaプラグイン+

Plugin queue/mongo_email failed: TypeError: Email.save is not a function

これは、プラグインのコードです:

var mongoose   = require('mongoose'); 

var mongodbUri = "mongodb://localhost:27017/"; 

var options = { 
    useMongoClient: true, 
    socketTimeoutMS: 0, 
    keepAlive: true, 
    reconnectTries: 30 
}; 

var db = mongoose.connect(mongodbUri, options); 

var EmailSchema = mongoose.Schema({ 
    emailFrom: String, 
    emailMsg: String, 
    emailRcv: String, 
    emailSubject: String 
}); 

var Email = mongoose.model('Email', EmailSchema); 

exports.hook_queue = function(next, connection){ 

    var transaction = connection.transaction; 
    var receivedDate = transaction.header.headers.date; 
    var subjectLine = transaction.header.headers.subject; 

    Email.save({ 
     emailFrom: transaction.mail_from, 
     emailMsg: transaction.data_lines, 
     emailRcv: receivedDate, 
     emailSubject: subjectLine 
    }); 

    next(); 

} 
+1

感謝などの他のオプションをサポートするように変更することができます。しかし、あなたの質問を答えに上書きしないでください。その結果、あなたが修正した問題を誰も理解できなくなります。代わりに、自分のソリューションを自己解答の下に置きます。また、チェックマークをクリックすると、解決済みと表示されます。 – halfer

+1

質問が更新されました。あなたの助言に感謝します! – gitterio

答えて

1

回答:

var mongoose   = require('mongoose'); 

var mongodbUri = "mongodb://localhost:27017/"; 

var options = { 
    useMongoClient: true, 
    socketTimeoutMS: 0, 
    keepAlive: true, 
    reconnectTries: 30 
}; 

var db = mongoose.connect(mongodbUri, options); 

var EmailSchema = mongoose.model('Email',{ 
    emailFrom: String, 
    emailMsg: String, 
    emailRcv: String, 
    emailSubject: String 
}); 


exports.hook_queue = function(next, connection){ 

    var transaction = connection.transaction; 
    var receivedDate = transaction.header.headers.date; 
    var subjectLine = transaction.header.headers.subject; 

    var Email = new EmailSchema({ 
     emailFrom: transaction.mail_from, 
     emailMsg: transaction.data_lines, 
     emailRcv: receivedDate, 
     emailSubject: subjectLine 
    }); 

    Email.save(); 

    next(); 

} 

トランザクション変数var transaction = connection.transaction;は、新しい電子メールに関するすべての情報を含むオブジェクトです。 MongoDBのスキーマEmailSchemaはあなたのソリューションを表示したいためなどのメッセージヘッダ、添付ファイル、

関連する問題