From 481da73b164c2793c20525e7599481c98d459cad Mon Sep 17 00:00:00 2001 From: Thor Harald Johansen Date: Sat, 6 Jun 2020 18:50:18 +0200 Subject: [PATCH] Disable protocol "junk" message for now and just apply X-Spam header --- src/bogofilter-smtpd.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/bogofilter-smtpd.cpp b/src/bogofilter-smtpd.cpp index dc7d4de..1c277a6 100644 --- a/src/bogofilter-smtpd.cpp +++ b/src/bogofilter-smtpd.cpp @@ -64,7 +64,6 @@ void on_data_line(protocol::protocol_t& protocol, protocol::message_t message) { } if(data_line == ".") { - protocol.submit_message(session_key, session_token, session.message.header, session.message.body); FILE* f = popen("bogofilter -v 1>&2", "w"); for(string& line : session.message.header) { fprintf(f, "%s\n", line.c_str()); @@ -76,6 +75,12 @@ void on_data_line(protocol::protocol_t& protocol, protocol::message_t message) { int status = pclose(f); session.status = WEXITSTATUS(status); + if(session.status == 0) { + session.message.header.push_back("X-Spam: Yes"); + } + + protocol.submit_message(session_key, session_token, session.message.header, session.message.body); + return; } @@ -97,10 +102,11 @@ void on_commit(protocol::protocol_t& protocol, protocol::message_t message) { auto session_token = protocol::session_token_from(message); try { auto& session = sessions.at(session_key); - + /* switch(session.status) { case mail::status::SPAM: debug && cerr << "Classified as spam" << endl; + protocol.junk(session_key, session_token); break; @@ -115,6 +121,9 @@ void on_commit(protocol::protocol_t& protocol, protocol::message_t message) { protocol.fail(session_key, session_token); break; } + */ + + protocol.proceed(session_key, session_token); } catch(out_of_range& e) { cerr << "Unknown session key from SMTPD" << endl; protocol.fail(session_key, session_token);