本文整理汇总了Golang中mailfile.Mail类的典型用法代码示例。如果您正苦于以下问题:Golang Mail类的具体用法?Golang Mail怎么用?Golang Mail使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Mail类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Filter
func (spmf *SubjectPrefixMatchFilter) Filter(mail mailfile.Mail) Result {
log.Printf("Run %s, Mail:%s\n", spmf, mail.Name())
spmf.total.Inc(1)
matched := false
for _, subjectPrefix := range spmf.subjectPrefixes {
if strings.HasPrefix(mail.Subject(), subjectPrefix) {
matched = true
spmf.matched.Inc(1)
break
}
}
if !matched {
return Incoming
}
return spmf.next.Filter(mail)
}
示例2: Filter
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)
}
示例3: Filter
func (cf *CachingProxy) Filter(mail mailfile.Mail) Result {
log.Printf("Run %s, Mail:%s\n", cf, mail.Name())
cf.total.Inc(1)
keyer, ok := cf.target.(CacheKey)
if !ok {
log.Fatalf("%s should implement CacheKey interface\n", cf.target)
return None
}
key := keyer.Key(mail)
cf.rwm.RLock()
for e := cf.l.Front(); e != nil; e = e.Next() {
if t, ok := e.Value.(*CacheEntry); ok {
if key == t.key {
cf.rwm.RUnlock()
cf.hit.Inc(1)
return t.result
}
}
}
cf.rwm.RUnlock()
result := cf.target.Filter(mail)
cf.rwm.Lock()
cf.l.PushFront(&CacheEntry{key, result})
if cf.l.Len() > cf.size {
cf.l.Remove(cf.l.Back())
}
cf.cached.Update(int64(cf.l.Len()))
cf.rwm.Unlock()
return result
}
示例4: Update
func (cih *ContentInspectionUpdater) Update(mail mailfile.Mail) {
if leaner, ok := cih.anlz.(analyzer.Learner); ok {
log.Printf("Run %s, Mail:%s\n", cih, mail.Name())
cih.total.Inc(1)
post, err := mailpost.Parse(mail)
mail.Close()
if err != nil {
cih.malformed.Inc(1)
log.Printf("ContentInspectionUpdater: Err:%v, Mail:%s\n", err, mail.Path())
return
}
leaner.Learn(post.Subject, cih.class)
leaner.Learn(post.Content, cih.class)
err = os.Remove(mail.Path())
if err != nil {
log.Println(err)
}
}
}
示例5: Filter
func (cif *ContentInspectionFilter) Filter(mail mailfile.Mail) Result {
log.Printf("Run %s, Mail:%s\n", cif, mail.Name())
cif.total.Inc(1)
post, err := mailpost.Parse(mail)
mail.Close()
if err != nil {
cif.malformed.Inc(1)
log.Printf("ContentInspectionFilter: Err:%v, Mail:%s\n", err, mail.Path())
return cif.next.Filter(mail)
}
class := cif.anlz.Test(post.Subject + " " + post.Content)
cif.counters[class].Inc(1)
if cif.allPass || analyzer.Good == class {
return cif.next.Filter(mail)
}
return Quarantine
}
示例6: Parse
func Parse(mail mailfile.Mail) (*post.Post, error) {
//JavaTWO即 將於 7/20盛 大舉辦!即日起可享早鳥優惠, 將New iPad帶 回家!
if !strings.HasPrefix(mail.Subject(), "[email protected]") {
return nil, ErrNotSupport
}
//[email protected]新文章通知:Hello JavaFX! Part 3
for _, prefix := range []string{"[email protected]新文章通知:"} {
if strings.HasPrefix(mail.Subject(), prefix) {
return article.Parse(mail.Content())
}
}
//[email protected], 回覆通知
if strings.HasPrefix(mail.Subject(), "[email protected], 回覆通知") {
return general.Parse(mail.Content())
}
//[email protected]新話題通知:*.class如何反編譯回*.java還能正常執行?
//[email protected]話題更新通知:Guava 教學系列文章
for _, prefix := range []string{"[email protected]新話題通知:", "[email protected]話題更新通知:", "[email protected]話題更新通知:"} {
if strings.HasPrefix(mail.Subject(), prefix) {
return general.Parse(mail.Content())
}
}
return nil, ErrNotSupport
}
示例7: Filter
func (df *DeliverFilter) Filter(mail mailfile.Mail) Result {
log.Printf("Run %s, Mail:%s\n", df, mail.Name())
df.total.Inc(1)
result := df.next.Filter(mail)
df.counters[result].Inc(1)
if result == None {
log.Fatalf("DeliverFilter: the filter result should not be None, Mail:%s\n", mail.Name())
}
destination := filepath.Join(df.paths[result], mail.Name())
log.Printf("Move to %s, Mail:%s\n", destination, mail.Name())
err := os.Rename(mail.Path(), destination)
if err != nil {
log.Printf("DeliverFilter: Err:%v, Mail:%s\n", err, mail.Name())
}
return None
}
示例8: Key
func (cif *ContentInspectionFilter) Key(mail mailfile.Mail) string {
return mail.Subject()
}
示例9: Filter
func (ddf *DefaultDestinationFilter) Filter(mail mailfile.Mail) Result {
log.Printf("Run %s, Mail:%s\n", ddf, mail.Name())
ddf.total.Inc(1)
return Incoming
}