예제 #1
0
파일: rabf.py 프로젝트: hax404/rabf
  def envrcpt(self, to, *str):
    rcptinfo = to,Milter.dictfromlist(str)
    self.R.append(rcptinfo)
    self.log("to: ", parse_addr(to)[0])

    a = 23
    b = 42
    addr = parse_addr(to)[0]
    euser = addr[0:2]
    ecsum = addr[2:4]
    eitext = addr[4:]
    edomain = parse_addr(to)[1]
    genitext = ''.join((euser, eitext, edomain))
    gencsum = hashlib.sha512(genitext.encode('utf-8')).hexdigest()
    posa = int(a)-1
    posb = int(b)-1
    csuma = gencsum[posa:(posa+1)]
    csumb = gencsum[posb:(posb+1)]

    self.log(addr, euser, ecsum, eitext, edomain, genitext, gencsum, posa, posb, csuma, csumb)

    if(ecsum != "".join((csuma,csumb))):
      self.log("Computer sagt nein.")
      return Milter.REJECT

    self.log("Computer sagt ja.")
    return Milter.CONTINUE
예제 #2
0
 def envfrom(self, fromAddress, *extra):
     self.mailFrom = '@'.join(parse_addr(fromAddress))
     self.recipients = []
     self.fromparms = Milter.dictfromlist(extra) # ESMTP parms
     self.user = self.getsymval('{auth_authen}') # authenticated user
     self.fp = StringIO.StringIO()
     return Milter.CONTINUE
예제 #3
0
 def envfrom(self, mailfrom, *str):
     self.F = mailfrom
     self.R = []
     self.fromparms = Milter.dictfromlist(str)
     self.user = self.getsymval('{auth_authen}')
     self.fp = StringIO()
     self.canon_from = '@'.join(parse_addr(mailfrom))
     self.fp.write('From %s %s\n' % (self.canon_from, time.ctime()))
     return Milter.CONTINUE
예제 #4
0
 def envfrom(self, mailfrom, *str):
     self.F = mailfrom
     self.R = []  # list of recipients
     self.fromparms = Milter.dictfromlist(str)  # ESMTP parms
     self.user = self.getsymval('{auth_authen}')  # authenticated user
     self.fp = StringIO.StringIO()
     self.canon_from = '@'.join(parse_addr(mailfrom))
     #self.fp.write('From %s %s\n' % (self.canon_from,time.ctime()))
     return Milter.CONTINUE
예제 #5
0
 def envfrom(self, mailfrom, *str):
     self.log("mail from: %s  -  %s" % (mailfrom, str))
     self.fromparms = Milter.dictfromlist(str)
     # NOTE: self.fp is only an *internal* copy of message data.  You
     # must use addheader, chgheader, replacebody to change the message
     # on the MTA.
     self.fp = StringIO.StringIO()
     self.canon_from = '@'.join(parse_addr(mailfrom))
     self.fp.write('From %s %s\n' % (self.canon_from, time.ctime()))
     return Milter.CONTINUE
예제 #6
0
	def envfrom( self, mailfrom, *ESMTP_params ):
		self.Message.SMTP.MAIL_FROM = mailfrom.strip( '<>' );
		self.Message.SMTP.MAIL_FROM_PARAMS = Milter.dictfromlist( ESMTP_params );    # ESMTP params
		self.Message.SMTP.AUTH_USER = self.getsymval( '{auth_authen}' );    # Authenticated User
# 		self.canon_from = '@'.join( parse_addr( mailfrom ) )
# 		self.Message.Raw.write( 'From %s %s\n' % ( self.canon_from, time.ctime() ) )

		self.log.smtp( "mail from:", self.Message.SMTP.MAIL_FROM, *ESMTP_params )

		return self.ProcessRuleSet();
예제 #7
0
 def envfrom(self, mailfrom, *str):
     self.log("mail from: %s  -  %s" % (mailfrom, str))
     self.fromparms = Milter.dictfromlist(str)
     # NOTE: self.fp is only an *internal* copy of message data.  You
     # must use addheader, chgheader, replacebody to change the message
     # on the MTA.
     self.fp = StringIO.StringIO()
     self.canon_from = "@".join(parse_addr(mailfrom))
     self.fp.write("From %s %s\n" % (self.canon_from, time.ctime()))
     return Milter.CONTINUE
예제 #8
0
    def envfrom(self, mailfrom, *str):
        self.F = mailfrom
        self.R = []  
        self.fromparms = Milter.dictfromlist(str)  
        self.user = self.getsymval('{auth_authen}')  
       

        self.fp = StringIO.StringIO()
        self.canon_from = '@'.join(parse_addr(mailfrom))
        self.fp.write('From %s %s\n' % (self.canon_from, time.ctime()))
        return Milter.CONTINUE
예제 #9
0
 def envfrom(self, mailfrom, *str):
     self.log("mail from: %s  -  %s" % (mailfrom, str))
     self.fromparms = Milter.dictfromlist(str)
     # NOTE: self.fp is only an *internal* copy of message data.  You
     # must use addheader, chgheader, replacebody to change the message
     # on the MTA.
     self.fp = BytesIO()
     self.canon_from = "@".join(parse_addr(mailfrom))
     from_txt = "From %s %s\n" % (self.canon_from, time.ctime())
     self.fp.write(from_txt.encode("utf-8"))
     return Milter.CONTINUE
예제 #10
0
 def envfrom(self, mailfrom, *str):
     self.F = mailfrom
     self.R = []  # list of recipients
     self.fromparms = Milter.dictfromlist(str)  # ESMTP parms
     self.user = self.getsymval('{auth_authen}')  # authenticated user
     self.log("mail from:", mailfrom, *str)
     # NOTE: self.fp is only an *internal* copy of message data.  You
     # must use addheader, chgheader, replacebody to change the message
     # on the MTA.
     self.fp = BytesIO()
     self.canon_from = '@'.join(parse_addr(mailfrom))
     #self.fp.write('From %s %s\n' % (self.canon_from,time.ctime()))
     return Milter.CONTINUE
예제 #11
0
 def envfrom(self, mailfrom, *str):
   self.F = mailfrom
   self.R = []  # list of recipients
   self.fromparms = Milter.dictfromlist(str)	# ESMTP parms
   self.user = self.getsymval('{auth_authen}')	# authenticated user
   self.log("mail from:", mailfrom, *str)
   # NOTE: self.fp is only an *internal* copy of message data.  You
   # must use addheader, chgheader, replacebody to change the message
   # on the MTA.
   self.fp = StringIO()
   self.canon_from = '@'.join(parse_addr(mailfrom))
   self.fp.write('From %s %s\n' % (self.canon_from,time.ctime()))
   return Milter.CONTINUE
예제 #12
0
    def envrcpt(self, to, *str):
        rcptinfo = to, Milter.dictfromlist(str)
        print rcptinfo

        return Milter.CONTINUE
예제 #13
0
    def envrcpt(self, to, *str):
        rcptinfo = to, Milter.dictfromlist(str)
        self.R.append(rcptinfo)

        return Milter.CONTINUE
예제 #14
0
    def envrcpt(self, to, *str):
        rcptinfo = to, Milter.dictfromlist(str)
        print rcptinfo

        return Milter.CONTINUE
예제 #15
0
 def envrcpt(self, to, *extra):
     rcptinfo = to, Milter.dictfromlist(extra)
     self.recipients.append(rcptinfo)
     return Milter.CONTINUE
예제 #16
0
 def envrcpt(self, recipient, *str):
     rcptinfo = recipient, Milter.dictfromlist(str)
     self.R.append(rcptinfo)
     return Milter.CONTINUE
예제 #17
0
 def envrcpt(self, to, *str):
   rcptinfo = to,Milter.dictfromlist(str)
   self.R.append(rcptinfo)
   
   return Milter.CONTINUE