{"action":"opened","issue":{"url":"https://api.github.com/repos/haraka/Haraka/issues/1424","repository_url":"https://api.github.com/repos/haraka/Haraka","labels_url":"https://api.github.com/repos/haraka/Haraka/issues/1424/labels{/name}","comments_url":"https://api.github.com/repos/haraka/Haraka/issues/1424/comments","events_url":"https://api.github.com/repos/haraka/Haraka/issues/1424/events","html_url":"https://github.com/haraka/Haraka/issues/1424","id":151521481,"number":1424,"title":"'rcpt to' accepted, I disagree","user":{"login":"darkpixel","id":158380,"avatar_url":"https://avatars.githubusercontent.com/u/158380?v=3","gravatar_id":"","url":"https://api.github.com/users/darkpixel","html_url":"https://github.com/darkpixel","followers_url":"https://api.github.com/users/darkpixel/followers","following_url":"https://api.github.com/users/darkpixel/following{/other_user}","gists_url":"https://api.github.com/users/darkpixel/gists{/gist_id}","starred_url":"https://api.github.com/users/darkpixel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darkpixel/subscriptions","organizations_url":"https://api.github.com/users/darkpixel/orgs","repos_url":"https://api.github.com/users/darkpixel/repos","events_url":"https://api.github.com/users/darkpixel/events{/privacy}","received_events_url":"https://api.github.com/users/darkpixel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-04-28T00:18:31Z","updated_at":"2016-04-28T00:18:31Z","closed_at":null,"body":"### Haraka version\r\n2.8.0-alpha.9\r\n\r\n### Expected behavior\r\nRecipient should be rejected\r\n\r\n### Observed behavior\r\n```\r\n[PROTOCOL] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] C: RCPT TO:<doesnotexist1231234@utilizeit.com> state=1\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] running rcpt hooks\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] running rcpt hook in relay plugin\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [relay] dest_domain = utilizeit.com\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [relay] found config for utilizeit.com: continue\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] hook=rcpt plugin=relay function=dest_domains params=\"<doesnotexist1231234@utilizeit.com>\" retval=CONT msg=\"\"\r\n\r\n^ I am set up to accept mail for 'utilizeit.com' and relay it off to the box that actually stores the mail.\r\n\r\n\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] running rcpt hook in access plugin\r\n[DEBUG] [-] [access] empty file: rcpt_to.access.whitelist_regex\r\n[DEBUG] [-] [access] empty file: rcpt_to.access.blacklist_regex\r\n\r\n^ There is no rcpt_to.access.whitelist_regex or rcpt_to.access.whitelist_regex, but I *do* have rcpt_to.access.witelist (containing test@utilizeit.com) and rcpt_to.access.blacklist (containing testblock@utilizeit.com).\r\n\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] hook=rcpt plugin=access function=rcpt_to_access params=\"<doesnotexist1231234@utilizeit.com>\" retval=CONT msg=\"\"\r\n\r\n^ If I understand correctly, retval=CONT tells the system to continue processing and NOT make an accept/reject decision.\r\n\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] running rcpt hook in karma plugin\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [karma] applied relaying:6\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] hook=rcpt plugin=karma function=hook_rcpt params=\"<doesnotexist1231234@utilizeit.com>\" retval=CONT msg=\"\"\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] running rcpt_ok hooks\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] running rcpt_ok hook in greylist plugin\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [greylist] skipping GL for relaying host\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] hook=rcpt_ok plugin=greylist function=hook_rcpt_ok params=\"undefined\" retval=CONT msg=\"\"\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] running rcpt_ok hook in greylist plugin\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [greylist] skipping GL for relaying host\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] hook=rcpt_ok plugin=greylist function=hook_rcpt_ok params=\"undefined\" retval=CONT msg=\"\"\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] running rcpt_ok hook in karma plugin\r\n[DEBUG] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] hook=rcpt_ok plugin=karma function=hook_rcpt_ok params=\"undefined\" retval=CONT msg=\"\"\r\n\r\n^ All these checks return CONT, so if I understand it correctly, the message should default to being rejected because no RCPT_TO plugin specifically returned ACCEPT, right?\r\n\r\n[NOTICE] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] recipient <doesnotexist1231234@utilizeit.com> code=OK msg=\"\" sender=\"adebruyn@-redacted-\"\r\n[PROTOCOL] [002810EE-3886-4CC4-BAB1-881E82DDA1DC.1] [core] S: 250 recipient <doesnotexist1231234@utilizeit.com> OK\r\n\r\n^ The server accepts the message\r\n\r\n```\r\n\r\n### Steps to reproduce\r\nI have the following rcpt plugins enabled:\r\n```\r\nHook: rcpt ---------------------------------------------------------------------\r\nPlugin                              Method                              Prio T/O\r\n--------------------------------------------------------------------------------\r\nrelay                               dest_domains                           0  30\r\naccess                              rcpt_to_access                         0  30\r\nkarma                               hook_rcpt                              0  30\r\n```\r\n```\r\nrelay.ini\r\n[relay]\r\nacl=true\r\nforce_routing=true\r\ndest_domains=true\r\n```\r\n```\r\nrelay_dest_domains.ini\r\n[domains]\r\nutilizeit.com = { \"action\": \"continue\", \"nexthop\": \"internal.ip.addr.ess\" }\r\n```\r\n```\r\nrelay_acl_allow contains\r\n127.0.0.1/32\r\n-CIDR of internal subnet-\r\n-my home IP for testing-\r\n```\r\n\r\nAm I way off base?"}}