-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 1202a70
Showing
30 changed files
with
2,940 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Goland (developer-specific stuff) | ||
.idea/workspace.xml | ||
|
||
# Custom certificates | ||
*.pem | ||
!cert1.pem | ||
!cert2.pem | ||
!key1.pem | ||
!key2.pem | ||
*.der | ||
!cert1.der | ||
!cert2.der | ||
!key1.der | ||
!key2.der | ||
|
||
# Sample JSON configs | ||
*.json |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Contributing to the ZapSmtp | ||
Contributions to the ZapSmtp are always welcome. | ||
|
||
This document explains the general requirements for contributions and the necessary preparation steps. | ||
It also sketches the typical integration process of patches. | ||
|
||
All contributions are subject to verification. Complex changes or changes with opaque impact may be rejected. | ||
|
||
## 1) Contribution Checklist | ||
- Use git to manage your changes [**recommended**] | ||
- Readability and code style over code efficiency [**required**] | ||
- Provide well-tested low maintenance code [**required**] | ||
- Provide code that is secure by default and can run out-of-the-box [**required**] | ||
- Add the required copyright header to each new file introduced, see [**required**] | ||
[licensing information](./LICENSE) [**required**] | ||
- Structure patches logically, in small steps [**required**] | ||
- All code turns into future liability, do not let the feature creep get hold of you! [**required**] | ||
|
||
## 2) By contributing, you certify, that: | ||
|
||
(a) The contribution was created in whole or in part by you and you | ||
have the right to submit it under the open source license | ||
indicated by this project; or | ||
|
||
(b) The contribution was provided directly to you by some other | ||
person who certified (a) or (b) and you have not modified | ||
it. | ||
|
||
(c) You understand and agree that this project and the contribution | ||
are public and that a record of the contribution (including all | ||
personal information you submit with it) is maintained indefinitely | ||
and may be redistributed consistent with this project or the | ||
open source license(s) involved. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
Copyright 2021 Siemens AG | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software | ||
and associated documentation files (the "Software"), to deal in the Software without restriction, | ||
including without limitation the rights to use, copy, modify, merge, publish, distribute, | ||
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all copies or | ||
substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING | ||
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | ||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# ZapSmtp | ||
Let's be real, who's regularly browsing through megabytes of log files? Wouldn't it be nice, if important messages | ||
were delivered to you in time, and the log files just served the purpose of holding the details? | ||
|
||
This package offers extended functionality for the [zap logger](https://github.com/uber-go/zap), with the purpose | ||
of handling (some) log messages via (optionally signed and/or encrypted) SMTP mails. | ||
|
||
We use this package to notice critical issues fast, so we can roll out a fix, before the user pushes the same buttons | ||
again. Yes, yes, alternatively, you can expand the turbine stack of your production environment | ||
by deploying, configuring and maintaining additional log management software. | ||
|
||
### Installation | ||
As Golang only supports plain text SMTP mails natively, _OpenSSL_ has to be installed if encryption and/or signature is | ||
to be enabled. Other than that a simple `go get` is sufficient. | ||
|
||
### Usage | ||
Because sending out a new mail for every single log message is not desirable in most cases, it is recommended to use | ||
some kind of buffered Core. For this the `delayedCore` provided in this package can be used. | ||
|
||
```go | ||
func Exmaple() { | ||
|
||
// Prepare SMTP sink | ||
sink, errSink := smtp.NewWriteSyncCloser( | ||
conf.Server, | ||
conf.Port, | ||
conf.Subject, | ||
conf.Sender, // mail.Address structs for the sender | ||
conf.Recipients, // mail.Address structs for each recipient | ||
conf.OpensslPath, // Can be omitted, if no e-mail signature nor encryption is desired | ||
conf.SignatureCertPath, // Can be omitted, if no e-mail signature is desired | ||
conf.SignatureKeyPath, // Can be omitted, if no e-mail signature is desired | ||
conf.EncryptionCertPaths, // Can be omitted, if no e-mail encryption is desired | ||
conf.TempDir, // If empty, the system's temporary directory will be used if needed | ||
) | ||
if errSink != nil { | ||
fmt.Printf("Initializing SMTP sink failed: %s\n", errSink) | ||
return | ||
} | ||
|
||
// Make sure logger is closed properly | ||
defer func() { | ||
if errClose := sink.Close(); errClose != nil { | ||
fmt.Printf("Closing SMTP sink failed: %s\n", errClose) | ||
} | ||
}() | ||
|
||
// Define the encoder | ||
enc := zapcore.NewConsoleEncoder(zap.NewDevelopmentEncoderConfig()) | ||
|
||
// Initialize SMTP core | ||
core, errCore := cores.NewDelayedCore(zapcore.WarnLevel, enc, sink, zapcore.ErrorLevel, time.Minute*1, time.Second*5) | ||
if errCore != nil { | ||
fmt.Printf("Initializing SMTP core failed: %s\n", errCore) | ||
return | ||
} | ||
|
||
// Initialize Zap logger | ||
logger := zap.New(core) | ||
|
||
// Make sure logger is flushed before shutting down | ||
defer func() { _ = logger.Sync() }() | ||
|
||
// Log stuff | ||
logger.Warn("Warn message, triggering email after 1 minute") | ||
logger.Error("Error message, triggering email after 5 seconds") // Email sent after 5 seconds will include warning | ||
} | ||
``` | ||
|
||
Note that even though the `writeSyncCloser` satisfies zap's `Sink` interface it is not recommended using it with | ||
`RegisterSink` as this way only standard `ioCores` can be used. | ||
|
||
Another example can be found in `./examples`. | ||
You can also visit [Large-Scale Discovery](https://github.com/siemens/large-scale-discovery) to see it applied. | ||
|
||
### Best practices | ||
- When possible the `writeSyncCloser` should be preferred over the `writeSyncer`, as it will convert files only once and | ||
keep a reference to the resulting files until `Close` is called. | ||
- As encrypting and signing mails via _OpenSSL_ is slow it is recommended to not log too frequently. This depends | ||
heavily on your use case though. | ||
- Email signature and encryption needs certificate and key files in PEM format. The `writeSyncer` (and `writeSyncCloser`) | ||
also allows for DER format and will convert them internally. It's advised though to use PEM format if possible. |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
-----BEGIN CERTIFICATE----- | ||
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 | ||
VuLs//nn/aFmOvKkTlVsSkDgBgWt0LlvhXnlu84= | ||
-----END CERTIFICATE----- |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
-----BEGIN CERTIFICATE----- | ||
MIIGJTCCBA2gAwIBAgIUUwMKLnzEwP3yv2sXWb8a9hwz/5UwDQYJKoZIhvcNAQEL | ||
BQAwgaExCzAJBgNVBAYTAlVTMRUwEwYDVQQIDAx6YXAtdGVzdGluZzIxFTATBgNV | ||
BAcMDHphcC10ZXN0aW5nMjEVMBMGA1UECgwMemFwLXRlc3RpbmcyMRUwEwYDVQQL | ||
DAx6YXAtdGVzdGluZzIxFTATBgNVBAMMDHphcC10ZXN0aW5nMjEfMB0GCSqGSIb3 | ||
DQEJARYQemFwQHRlc3RpbmcyLmNvbTAeFw0yMTAzMTIxMjAyMjVaFw0zMTAzMTAx | ||
MjAyMjVaMIGhMQswCQYDVQQGEwJVUzEVMBMGA1UECAwMemFwLXRlc3RpbmcyMRUw | ||
EwYDVQQHDAx6YXAtdGVzdGluZzIxFTATBgNVBAoMDHphcC10ZXN0aW5nMjEVMBMG | ||
A1UECwwMemFwLXRlc3RpbmcyMRUwEwYDVQQDDAx6YXAtdGVzdGluZzIxHzAdBgkq | ||
hkiG9w0BCQEWEHphcEB0ZXN0aW5nMi5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4IC | ||
DwAwggIKAoICAQDWywDIggkDsGzfptwsQZOYnrUzb2GTfU7MULLW39I1BO1SVJsX | ||
fCkO3okbkWaQ/pcaCouBvHBgVoIJGRew4rNd7WXnzB4cDcVTBxInWepbhi4dLjdU | ||
ZY3yjD2rL6taC0opJlJk3bVbcqvIvjDmIj5cO0JYqe63A3sYITxm0AlobtRa8lsj | ||
66QyaVkrYCiEWc9ZdSNSwNU3dvd92v3vJK6EZrCBWnq2xVmDRbHAsyHuKefBd7CI | ||
XcHJRN+xLrpCq/GpEzQdG1Sqch1z/Ji3FQUDoOmrYS7LG5SdzvsOq/KAw7ZmYxMP | ||
uy9nfweN7TJ4ahhhveeFS87MQP2c7r95x/4wWSX3hyBfldDyhb9DHLsKlApMJL2p | ||
xMaSS92f0LHTvLyMXlDay8jp6QemMyqQ4NtqvUF6YejOGe2er7/BUBVdIBmIyJO7 | ||
i15DShW32xAVionHNaB7bXFWHUptVFu7DOdqKcOCG4PPFzOEe/MPu1ivneEDuHPZ | ||
1LU1ays+gkdR+yUmrl8ojV0pUNyPek4QHzPseAHP+OvN7OdqBVLKeVUZidjtGa/q | ||
7DFlSfxaiu6e52P7pDhjLVNM2GpS5AfZZJLAIqxmaTjCWkI8yhyJaj6adYjIkVfB | ||
mOvNhyY9Mr1DS5njnx6/gVBagURK5HtNHNx89sHLKuxO7Cel3PvQyIy/NwIDAQAB | ||
o1MwUTAdBgNVHQ4EFgQUpyHew/RJ1aOcwAyGdg3rUFr2VOMwHwYDVR0jBBgwFoAU | ||
pyHew/RJ1aOcwAyGdg3rUFr2VOMwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B | ||
AQsFAAOCAgEAeWV6GsvZ8ElDIFq9raWgVHIH6S3UaxTl/7WXKVk9OhSduRtoDl8u | ||
+hUQleZsSzCc5aRoV6VqCMo6mkPJtlHcEcUGB4hl9byFuP+cqf6UbTgmRJNRK3fU | ||
/ul4lrNGEd6zVCRtp0tvKx+ELLrwbvTQj+lHIRaM4ue1tyjZb+Vmwfly2b7jHGi7 | ||
OGot3VT9qPSziC5X50iDdyWGs2314Izsm7EQbk8HBOq/DEBqLXl+WeTi09bbCFmE | ||
AAr6AC3eT2wtWZT5ZeA5gJ+CMx8/Y1lpDKKxOiSCgNv/Vm4x/RKoIjggljQlgGtM | ||
yWSJ00kJRpEoXLdhHkHNYf2IfHX/u384Xd0KjUz9VSZ5A/Z6y1VZwa6JfQqc7Q4I | ||
tkvNoOtHYT/5BEOXDeTKhPdHBWyyWiGeYSJvTQs8LiJDmQoIkDQufnEFh45vn5Hg | ||
2UHHOX39mCl9odAAgmj2KzyQZB4HmRjt7Ea65tAObpOfWVT5Wlb9Lj1q+xJvbO6F | ||
9e4iC3D9fSidcMI0ycm8hMtIKYsT/HMMHTG460T5iVtIZh4OQItLt7k73druGIkK | ||
IA9qDJ0iqfJkbJEWvgjzpsI1YBu6bVN8DYlbtO2F9GVR2v2GGeKlyDEAOLhgZTE8 | ||
Mb2ixWmTTPrjn+gNyGrU1BkJglsaZGmjYyv/VsdP7RCT7XDnach5HR8= | ||
-----END CERTIFICATE----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#!/bin/bash | ||
|
||
openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 3650 -outform pem -out cert.pem |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
-----BEGIN PRIVATE KEY----- | ||
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 | ||
eQh4ZC4L0syzmMjb0mOdfEhj1NpV7ic1 | ||
-----END PRIVATE KEY----- |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
-----BEGIN PRIVATE KEY----- | ||
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 | ||
gX/hi0ukSbdQSLSzOcWPuH3FP+kn6ZBE | ||
-----END PRIVATE KEY----- |
Oops, something went wrong.