This is the main dovel repository, it has the Go code to run dovel SMTP server.
Author: bmayer3 (bmayer@sibros.tech)
Date: Tue Feb 7 19:18:20 2023 -0300
Parent: c8304fc
Improved interface Changed parsemail provider
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/cmd/dovel/main.go b/cmd/dovel/main.go index 6e2f485..7ec4893 100644 --- a/cmd/dovel/main.go +++ b/cmd/dovel/main.go @@ -14,8 +14,10 @@ import ( "blmayer.dev/x/dovel/interfaces" "blmayer.dev/x/dovel/interfaces/file" "blmayer.dev/x/dovel/interfaces/gwi" + "github.com/emersion/go-smtp" - "github.com/vraycc/go-parsemail" + + "github.com/marcospgmelo/parsemail" ) type backend struct {
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/go.mod b/go.mod index adbab2c..c75448e 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.19 require ( github.com/emersion/go-smtp v0.15.0 github.com/go-git/go-git/v5 v5.4.2 - github.com/vraycc/go-parsemail v0.0.0-20221110135954-331ae329fca6 + github.com/marcospgmelo/parsemail v1.3.0 ) require (
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/go.sum b/go.sum index e8a956f..910a71b 100644 --- a/go.sum +++ b/go.sum @@ -55,6 +55,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/marcospgmelo/parsemail v1.3.0 h1:vl7hmg+DYOu3qvoPwLWt9XZUMfBZOG1ULTjjJsSvx+Y= +github.com/marcospgmelo/parsemail v1.3.0/go.mod h1:bzTPHUEfHfbAxgj0nNHBAEH50bbKSkSuNVx8HEpO+5A= github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -76,8 +78,6 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/vraycc/go-parsemail v0.0.0-20221110135954-331ae329fca6 h1:heYIND9fCman7upF5lbS2YJja7h6a6jScqtTorle5ds= -github.com/vraycc/go-parsemail v0.0.0-20221110135954-331ae329fca6/go.mod h1:t/GKLZo41c5vN5lo5suZXFRlFXvEqjLgIOYlVNq1Q1A= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/interfaces/file/file.go b/interfaces/file/file.go index bc75811..9724160 100644 --- a/interfaces/file/file.go +++ b/interfaces/file/file.go @@ -12,12 +12,14 @@ import ( "net/smtp" "os" "path" + "sort" "strconv" "strings" "time" "blmayer.dev/x/dovel/interfaces" - "github.com/vraycc/go-parsemail" + + "github.com/marcospgmelo/parsemail" ) // FileConfig is used to configure the file handler, now it only contains @@ -258,6 +260,12 @@ func (f FileHandler) Mailboxes(folder string) ([]interfaces.Mailbox, error) { threads = append(threads, t) } + sort.Slice( + threads, + func(i, j int) bool { + return threads[i].LastMod.After(threads[j].LastMod) + }, + ) return threads, nil }
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/interfaces/main.go b/interfaces/main.go index 96352fd..6a31539 100644 --- a/interfaces/main.go +++ b/interfaces/main.go @@ -5,9 +5,11 @@ package interfaces import ( "time" + "github.com/go-git/go-git/v5/plumbing" "github.com/go-git/go-git/v5/plumbing/object" - "github.com/vraycc/go-parsemail" + + "github.com/marcospgmelo/parsemail" ) type User interface { @@ -55,13 +57,13 @@ type Email struct { func ToEmail(mail parsemail.Email) Email { m := Email{ - From: mail.From[0].Address, - To: []string{}, - Cc: []string{}, + From: mail.From[0].Address, + To: []string{}, + Cc: []string{}, Subject: mail.Subject, - ID: mail.MessageID, - Date: mail.Date, - Body: mail.TextBody, + ID: mail.MessageID, + Date: mail.Date, + Body: mail.TextBody, } for _, to := range mail.To { m.To = append(m.To, to.Address)
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/www/inboxes.html b/www/inboxes.html index 5227efc..c370589 100644 --- a/www/inboxes.html +++ b/www/inboxes.html @@ -4,6 +4,8 @@ {{template "style-min.html"}} {{with $inbox := (index .inbox 0)}} <pre> +// <a href="index.html">index</a> +// <b>// inbox {{$inbox}}</b> // <a href="compose.html?inbox={{$inbox}}">compose</a>
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/www/index.html b/www/index.html index 5e8a1ff..cdad7f7 100644 --- a/www/index.html +++ b/www/index.html @@ -1,6 +1,6 @@ <title>dovel</title> <link rel=icon href=data:;,> -<meta name="viewport" content="width=541, initial-scale=1"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> {{template "style-min.html"}} <pre> <b>// inboxes!</b>
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/www/mail.html b/www/mail.html index eb25b2f..430540d 100644 --- a/www/mail.html +++ b/www/mail.html @@ -1,11 +1,11 @@ <title>dovel</title> <link rel=icon href=data:;,> -<meta name="viewport" content="width=541, initial-scale=1"/> +<meta name="viewport" content="width=device-widht, initial-scale=1"/> {{template "style-min.html"}} {{with $subj := printf "%s/%s" (index .inbox 0) (index .subj 0)}} {{with $inbox := (index $.inbox 0)}} <pre> -<b>// about {{$subj}}</b> +// <a href="mails.html?inbox={{$inbox}}&subj={{index $.subj 0}}">back</a> {{range (mails $subj)}} // From: {{.From}} // To: {{index .To 0}}
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/www/mails.html b/www/mails.html index 5e5fdbf..6c8ffd5 100644 --- a/www/mails.html +++ b/www/mails.html @@ -1,16 +1,19 @@ <title>dovel</title> <link rel=icon href=data:;,> -<meta name="viewport" content="width=541, initial-scale=1"/> +<meta name="viewport" content="width=device-widht, initial-scale=1"/> {{template "style-min.html"}} {{with $subj := (index .subj 0)}} {{with $inbox := (index $.inbox 0)}} <pre> -<b>// about {{$inbox}}/{{$subj}}</b> +// <a href="inboxes.html?inbox={{$inbox}}">inbox</a> +// +<b>// about {{$inbox}}</b> {{range (mails (print $inbox "/" $subj))}} +// <a href="mail.html?inbox={{$inbox}}&subj={{$subj}}&id={{.ID}}">{{$subj}}</a> {{if eq $inbox .From -}} -// To: <a href="mail.html?inbox={{$inbox}}&subj={{$subj}}&id={{.ID}}">{{index .To 0}}</a> +// To: {{index .To 0}}</a> {{- else -}} -// From: <a href="mail.html?inbox={{$inbox}}&subj={{$subj}}&id={{.ID}}">{{.From}}</a> +// From: {{.From}} {{- end}} // Date: {{.Date.Format "Mon, 02 Jan 2006 15:04:05 MST"}}{{if .Cc}} // Cc: .Cc{{end}}
commit 135026007c4be6c7208ee2c19d9e85f06c8f7081 Author: bmayer3 <bmayer@sibros.tech> Date: Tue Feb 7 19:18:20 2023 -0300 Improved interface Changed parsemail provider diff --git a/www/style-min.html b/www/style-min.html index a993a2d..fd2964f 100644 --- a/www/style-min.html +++ b/www/style-min.html @@ -1,2 +1,16 @@ -<style>body{width:541;margin:99 auto;background:#000;color:#0f0;font-size:13pt}a{color:#f0f}</style> +<style> +body{ + width:541; + margin:99 auto; + background:#000; + color:#0f0; + font-size:12pt; +} +a{ + color:#f0f +} +pre{ + white-space: pre-wrap; +} +</style>