In case anyone else needs it, here is my "quick hack" that stops mail
coming from facebook to a local user called cem.duran:
In spamdyke.c:
1) Find the line that starts with
filter_identical_from_to(current_settings,
¤t_settings->current_options-> (etc -- huge line)
2) copy and paste that line right under it, just change the function
name to
filter_facebook(.....)
so it looks like:
filter_identical_from_to(current_settings,
¤t_settings->current_options->filter_action,
¤t_settings->current_opti....
filter_facebook(current_settings,
¤t_settings->current_options->filter_action,
¤t_settings->current_options->filt.....
filter_recipient_graylist(current_sett.....
3) in filter.c, add this function somewhere:
int filter_facebook(struct filter_settings *current_settings, int
*target_action, int *return_action_locked, struct rejection_data
**target_rejection, struct rejection_data *target_rejection_buf, char
*target_message_buf, int size_target_message_buf)
{
int return_value;
char tmp_sender_address[MAX_ADDRESS + 1];
char tmp_recipient_address[MAX_ADDRESS + 1];
int strlen_sender_address;
int strlen_recipient_address;
return_value = FILTER_DECISION_UNDECIDED;
/* Check if the sender and recipient addresses are the same. */
reassemble_address(current_settings->sender_username,
current_settings->sender_domain, NULL, tmp_sender_address, MAX_ADDRESS,
&strlen_sender_address);
reassemble_address(current_settings->recipient_username,
current_settings->recipient_domain, NULL, tmp_recipient_address,
MAX_ADDRESS, &strlen_recipient_address);
if (strstr(current_settings->sender_domain,"facebook") &&
strstr(current_settings->recipient_username,"cem.duran"))
{
*target_action = FILTER_DECISION_TRANSIENT_DO_FILTER;
set_rejection(current_settings, REJECTION_IDENTICAL_FROM_TO,
target_rejection, target_rejection_buf, target_message_buf,
size_target_message_buf, NULL, NULL, NULL, 0);
SPAMDYKE_LOG_VERBOSE(current_settings,
LOG_VERBOSE_FILTER_IDENTICAL_FROM_TO, tmp_sender_address,
tmp_recipient_address);
return_value = FILTER_DECISION_TRANSIENT_DO_FILTER;
}
return(return_value);
}
4) done, make and copy resulting spamdyke to /usr/local/bin (at least
thats where mine is)
5) PS: Since this function is a copy of the same-sender-and-recipient
function, in the logs you'll see DENIED_IDENTICAL_SENDER_RECIPIENT
in the logs. I said it was a quick hack :)
-turgut
On 01/08/2012 12:57 AM, turgut kalfaoglu wrote:
> Unfortunately my plesk-qmail does not seem to have that patch installed.
> It's a huge pain to recompile qmail with plesk's patches, plus the empf.. -t
>
> On 07.01.2012 18:02, Eric Shubert wrote:
>> On 01/07/2012 07:39 AM, turgut kalfaoğlu wrote:
>>> For some reason, we have massive amounts of mail coming from facebook,
>>> to one local user.
>>> I am unable to stop it, because the From is different every time, there
>>> are hundreds of users in the To: header,
>>> and the local recipient is always one local poor guy.
>>>
>>> I'm good at C programming and I'd like to put something like
>>> if (strstr(sender,"facebook)&& strstr(recipient,"localsucker"))
>>> rejectmail++;
>>> into spamdyke..
>>>
>>> I'd appreciate any *pointers where to place a such code and how it
>>> should read.
>>>
>>> Many thanks, -turgut
>> Do you have the eMPF patch (http://www.inter7.com/?page=empf-install)
>> applied to qmail? If you do, I believe that can be used to accomplish
>> such a rule (and more). FWIW.
>>
> _______________________________________________
> spamdyke-users mailing list
> [email protected]
> http://www.spamdyke.org/mailman/listinfo/spamdyke-users
_______________________________________________
spamdyke-users mailing list
[email protected]
http://www.spamdyke.org/mailman/listinfo/spamdyke-users