-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #30 from jeremydumais/version_1_1_8
Version 1.1.8
- Loading branch information
Showing
15 changed files
with
335 additions
and
42 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
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 |
---|---|---|
|
@@ -2,6 +2,30 @@ | |
|
||
All notable changes to this project will be documented in this file | ||
|
||
## [1.1.8] | ||
|
||
## Enhancement / Bug fixes | ||
- Some SMTP server send their list of supported extensions in multiple | ||
buffers like Zoho Mail. The EHLO command when in uncrypted mode, now supports | ||
receiving multiple buffers. In return, a delay of one second must be added for | ||
each segment sent by the SMTP server. For SMTP servers that send the list of | ||
supported extensions in a single segment like Gmail and Live, no additional | ||
delay is added for the EHLO command. This doesn't affect the other commands. | ||
- Now when we send an email to multiple recipients (to or cc), the recipients | ||
appears as a single mail header instead of multiple headers. The old method was | ||
not RFC 5322 compliant. | ||
|
||
Before: | ||
|
||
To: [email protected] | ||
|
||
To: [email protected] | ||
|
||
After: | ||
|
||
To: [email protected], [email protected] | ||
|
||
|
||
## [1.1.7] | ||
|
||
### Added | ||
|
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
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
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
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
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
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,24 @@ | ||
#include "serveroptionsanalyzer.h" | ||
|
||
using namespace jed_utils; | ||
|
||
// Trim from start | ||
bool ServerOptionsAnalyzer::containsAllOptions(const std::string &optionsStr) { | ||
std::string sanitizedOptionsStr = [&optionsStr]() { | ||
if (optionsStr.size() >= 2 && optionsStr.substr(optionsStr.size() - 2) == "\r\n") { | ||
return optionsStr.substr(0, optionsStr.size() - 2); | ||
} else { | ||
return optionsStr; | ||
} | ||
}(); | ||
size_t lastLineStart = sanitizedOptionsStr.rfind("\r\n"); | ||
if (lastLineStart == std::string::npos) { | ||
lastLineStart = 0; | ||
} else { | ||
lastLineStart += 2; // Move past the \r\n | ||
} | ||
if (sanitizedOptionsStr.substr(lastLineStart, 4) == "250 ") { | ||
return true; | ||
} | ||
return false; | ||
} |
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 @@ | ||
#ifndef SERVEROPTIONSANALYZER_H | ||
#define SERVEROPTIONSANALYZER_H | ||
|
||
#include <string> | ||
|
||
#ifdef _WIN32 | ||
#ifdef SMTPCLIENT_EXPORTS | ||
#define SERVEROPTIONSANALYZER_API __declspec(dllexport) | ||
#else | ||
#define SERVEROPTIONSANALYZER_API __declspec(dllimport) | ||
#endif | ||
#else | ||
#define SERVEROPTIONSANALYZER_API | ||
#endif | ||
|
||
namespace jed_utils { | ||
/** @brief The ServerOptionsAnalyzer class provides utility fonctions to | ||
* analyzer the SMTP options that are available by the server. | ||
*/ | ||
class SERVEROPTIONSANALYZER_API ServerOptionsAnalyzer { | ||
public: | ||
/** | ||
* @brief Indicate if the server has returned all it's available options | ||
* or of there still a reply with other options to come. | ||
* @param optionsStr The string that contains the option list returned by | ||
* the SMTP server. | ||
*/ | ||
static bool containsAllOptions(const std::string &optionsStr); | ||
}; | ||
} // namespace jed_utils | ||
|
||
|
||
#endif // SERVEROPTIONSANALYZER_H |
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
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
Oops, something went wrong.