Go to file
Márton Elek 2ae78db660 satellite/email: add delimiter to close the last part of Multipart emails
The existing implementation doesn't send proper rfc1341 compatible mails
according to https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html as
the closing `--boundary_id--` is missing from our mails. (see 7.2.1 from
the standard).

Mailservers which are not very flexible, deny the mails.

Example mail log: (see the
missing boundary delimiter at the end).

```
Subject: Activate your email
From: "Storj DCS - EU1" <noreply@eu1.storj.io>
To: "..." <...>
...

--26d7220f6f1c9f6fb47b535319eb15dce513bb6e1d941a0efddf25e96712
Content-Type: text/html; charset=UTF-8

....

</body>
</html>
.
smtp: DATA error	{"msg_id":"6d82c9e3","reason":"unexpected EOF"}
smtp: 554 5.0.0 Internal server error (msg ID = 6d82c9e3)
```

This patch moves all the Multipart writing to a function to make sure
that the `wr.Close()` (which writes out the last part) is executed
BEFORE `body.Bytes()` (defer added it AFTER `body.Bytes()` was calculated)

Change-Id: I8f18fc81b1857b646470eab32e73d6cbdc50d2ad
2022-02-01 09:55:29 +00:00
.github .github: add issue templates 2021-09-24 08:42:48 +00:00
certificate mod: use vendored base58 2022-01-31 15:54:33 +02:00
cmd cmd/partnerid-to-useragent-migration: LIMIT 1 in MigrateUsers id select query 2022-01-31 23:57:30 +00:00
crashcollect crashcollect: removed redundant structure 2021-04-28 00:35:39 +03:00
docs docs/blueprints: Create API renovation blueprint 2022-01-24 14:24:31 +00:00
installer/windows storj/storj: more domain changes 2021-04-15 20:51:43 +00:00
multinode multinode/nodes: pass Node entity to Add method instead of set of a parameters 2021-12-15 12:39:24 +00:00
private satellite/email: add delimiter to close the last part of Multipart emails 2022-02-01 09:55:29 +00:00
resources cmd: add ca-certificates to Docker images (#3986) 2020-12-08 01:38:33 +01:00
satellite mod: use vendored base58 2022-01-31 15:54:33 +02:00
scripts cmd/uplinkng: improvements to prepare for doc update 2022-01-31 17:37:54 +00:00
storage ci: Golangci lint v1.43.0 changes (#4307) 2021-12-09 20:49:48 +01:00
storagenode storagenode: check if QUIC is properly configured 2022-01-20 12:04:04 +00:00
testsuite cmd/uplinkng: improvements to prepare for doc update 2022-01-31 17:37:54 +00:00
versioncontrol ci: fix lint errors 2021-05-17 13:37:31 +00:00
web satellite/projectaccounting, satellite/console, web/satellite: implemented backend for bandwidth chart 2022-01-26 15:09:22 +00:00
.dockerignore Forward-port release-alpha8 build script issues (#1726) 2019-04-09 23:01:10 -06:00
.gitattributes web/: add check for change to eslint import 2021-12-21 15:59:23 +00:00
.gitignore private/testplanet: support writing monitoring spans 2021-09-30 09:03:35 +03:00
.gitreview add config file for git review usage 2021-10-14 18:01:30 +00:00
CODE_OF_CONDUCT.md Adding CODE_OF_CONDUCT to storj/storj repo (#779) 2018-12-07 15:10:02 -05:00
CONTRIBUTING.md go.mod: update to minimum supported go version (#4239) 2021-10-22 21:12:13 +02:00
go.mod cmd/uplinkng: improvements to prepare for doc update 2022-01-31 17:37:54 +00:00
go.sum cmd/uplinkng: improvements to prepare for doc update 2022-01-31 17:37:54 +00:00
Jenkinsfile scripts,Jenkinsfile,Makefile: upload binaries to drafted github release 2021-12-21 13:55:38 +00:00
Jenkinsfile.public testsuite/ui: disable flaky UI tests 2022-01-03 15:54:15 +02:00
LICENSE license code with agplv3 (#126) 2018-07-05 10:24:26 -04:00
MAINTAINERS.md Create MAINTAINERS.md 2021-07-07 13:27:07 +02:00
Makefile Makefile: Set NodeJS version to use in var 2022-01-13 08:52:26 +00:00
monkit.lock satellite/audit: log error and increment metric if shares cannot be verified 2021-08-27 15:28:16 +00:00
proto.lock multinode/payouts: paystub extended with disposed 2021-06-01 16:28:20 +00:00
README.md Update README.md (#4320) 2021-12-22 14:12:58 +01:00

Storj V3 Network

Go Report Card Go Doc Coverage Status

Storj is building a decentralized cloud storage network. Check out our white paper for more info!


Storj is an S3-compatible platform and suite of decentralized applications that allows you to store data in a secure and decentralized manner. Your files are encrypted, broken into little pieces and stored in a global decentralized network of computers. Luckily, we also support allowing you (and only you) to retrieve those files!

Table of Contents

Contributing to Storj

All of our code for Storj v3 is open source. If anything feels off, or if you feel that some functionality is missing, please check out the contributing page. There you will find instructions for sharing your feedback, building the tool locally, and submitting pull requests to the project.

A Note about Versioning

While we are practicing semantic versioning for our client libraries such as uplink, we are not practicing semantic versioning in this repo, as we do not intend for it to be used via Go modules. We may have backwards-incompatible changes between minor and patch releases in this repo.

Start using Storj

Our wiki has documentation and tutorials. Check out these three tutorials:

License

This repository is currently licensed with the AGPLv3 license.

For code released under the AGPLv3, we request that contributors sign our Contributor License Agreement (CLA) so that we can relicense the code under Apache v2, or other licenses in the future.

Support

If you have any questions or suggestions please reach out to us on our community forum or file a ticket at https://support.storj.io/.