aboutsummaryrefslogtreecommitdiff
path: root/utils/smtp/storage.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/smtp/storage.go')
-rw-r--r--utils/smtp/storage.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/utils/smtp/storage.go b/utils/smtp/storage.go
new file mode 100644
index 0000000..b580d67
--- /dev/null
+++ b/utils/smtp/storage.go
@@ -0,0 +1,22 @@
+package smtp
+
+import (
+ "dove/config"
+ "fmt"
+ "os"
+ "path/filepath"
+ "time"
+)
+
+func storeMessage(fromAddress string, toAddresses []string, rawMessage []byte) error {
+ emailDirectory := filepath.Join(config.DataDir, "emails")
+
+ if directoryError := os.MkdirAll(emailDirectory, 0750); directoryError != nil {
+ return directoryError
+ }
+
+ filename := fmt.Sprintf("%d.eml", time.Now().UnixNano())
+ filePath := filepath.Join(emailDirectory, filename)
+
+ return os.WriteFile(filePath, rawMessage, 0640)
+} \ No newline at end of file