本文整理汇总了Golang中github.com/zond/diplicity/common.SkinnyContext.SendAddress方法的典型用法代码示例。如果您正苦于以下问题:Golang SkinnyContext.SendAddress方法的具体用法?Golang SkinnyContext.SendAddress怎么用?Golang SkinnyContext.SendAddress使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/zond/diplicity/common.SkinnyContext
的用法示例。
在下文中一共展示了SkinnyContext.SendAddress方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: IncomingMail
func IncomingMail(c common.SkinnyContext, msg *enmime.MIMEBody) (err error) {
text := gmail.DecodeText(msg.Text, msg.GetHeader("Content-Type"))
c.Debugf("Incoming mail to %#v\n%v", msg.GetHeader("To"), text)
if match := gmail.AddrReg.FindString(msg.GetHeader("To")); match != "" {
lines := []string{}
mailUser := strings.Split(c.SendAddress(), "@")[0]
for _, line := range strings.Split(text, "\n") {
if !strings.Contains(line, mailUser) && strings.Index(line, ">") != 0 {
lines = append(lines, line)
}
}
for len(lines) > 0 && strings.TrimSpace(lines[0]) == "" {
lines = lines[1:]
}
for len(lines) > 0 && strings.TrimSpace(lines[len(lines)-1]) == "" {
lines = lines[:len(lines)-1]
}
if len(lines) > 0 {
if match2 := emailPlusReg.FindStringSubmatch(match); match2 != nil {
var tag *MailTag
if tag, err = DecodeMailTag(c.Secret(), match2[1]); err == nil {
sender := &Member{Id: tag.R}
if err = c.DB().Get(sender); err != nil {
return
}
parent := &Message{Id: tag.M}
if err = c.DB().Get(parent); err != nil {
return
}
game := &Game{Id: parent.GameId}
if err = c.DB().Get(game); err != nil {
return
}
message := &Message{
Body: strings.TrimSpace(strings.Join(lines, "\n")),
GameId: game.Id,
RecipientIds: parent.RecipientIds,
}
c.Infof("Mail resulted in %+v from %+v", message, sender.Nation)
return message.Send(c, game, sender)
}
}
}
}
return nil
}