示例#1
0
func (sof *RelayOnlyFilter) Filter(mail mailfile.Mail) Result {
	log.Printf("Run %s, Mail:%s\n", sof, mail.Name())
	sof.total.Inc(1)

	sendOut := false
	for _, address := range mail.To() {
		if !strings.HasSuffix(address.Address, sof.localDomain) {
			sendOut = true
			sof.numOfRelay.Inc(1)
			break
		}
	}

	if !sendOut {
		return Incoming
	}

	return sof.next.Filter(mail)
}