diff options
Diffstat (limited to 'utils/smtp/storage.go')
| -rw-r--r-- | utils/smtp/storage.go | 22 |
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 |
