Change summary
fetcher/fetcher.go | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
Detailed changes
@@ -266,14 +266,27 @@ func moveEmail(cfg *config.Config, uid uint32, destMailbox string) error {
}
func DeleteEmail(cfg *config.Config, uid uint32) error {
- var trashMailbox string
- switch cfg.ServiceProvider {
- case "gmail":
- trashMailbox = "[Gmail]/Trash"
- default:
- trashMailbox = "Trash"
- }
- return moveEmail(cfg, uid, trashMailbox)
+ c, err := connect(cfg)
+ if err != nil {
+ return err
+ }
+ defer c.Logout()
+
+ if _, err := c.Select("INBOX", false); err != nil {
+ return err
+ }
+
+ seqSet := new(imap.SeqSet)
+ seqSet.AddNum(uid)
+
+ item := imap.FormatFlagsOp(imap.AddFlags, true)
+ flags := []interface{}{imap.DeletedFlag}
+
+ if err := c.UidStore(seqSet, item, flags, nil); err != nil {
+ return err
+ }
+
+ return c.Expunge(nil)
}
func ArchiveEmail(cfg *config.Config, uid uint32) error {