Added SMTP service properties to allow disabling PIPELINING and CHUNKING extensions.
This commit is contained in:
parent
cec80c6335
commit
820d44377e
@ -190,6 +190,12 @@ authentication is not used). \\
|
|||||||
transport.smtp.options.need-authentication & bool & Set to \emph{true} if
|
transport.smtp.options.need-authentication & bool & Set to \emph{true} if
|
||||||
the server requires to authenticate before sending messages. \\
|
the server requires to authenticate before sending messages. \\
|
||||||
\hline
|
\hline
|
||||||
|
transport.smtp.options.pipelining & bool & Set to {\vcode false} to disable
|
||||||
|
command pipelining, if the server supports it (default is {\vcode true}). \\
|
||||||
|
\hline
|
||||||
|
transport.smtp.options.chunking & bool & Set to {\vcode false} to disable
|
||||||
|
CHUNKING extension, if the server supports it (default is {\vcode true}). \\
|
||||||
|
\hline
|
||||||
% sendmail
|
% sendmail
|
||||||
\multicolumn{3}{|c|}{sendmail} \\
|
\multicolumn{3}{|c|}{sendmail} \\
|
||||||
\hline
|
\hline
|
||||||
|
@ -61,6 +61,9 @@ const SMTPServiceInfos::props& SMTPServiceInfos::getProperties() const
|
|||||||
property("options.sasl.fallback", serviceInfos::property::TYPE_BOOLEAN, "false"),
|
property("options.sasl.fallback", serviceInfos::property::TYPE_BOOLEAN, "false"),
|
||||||
#endif // VMIME_HAVE_SASL_SUPPORT
|
#endif // VMIME_HAVE_SASL_SUPPORT
|
||||||
|
|
||||||
|
property("options.pipelining", serviceInfos::property::TYPE_BOOLEAN, "true"),
|
||||||
|
property("options.chunking", serviceInfos::property::TYPE_BOOLEAN, "true"),
|
||||||
|
|
||||||
// Common properties
|
// Common properties
|
||||||
property(serviceInfos::property::AUTH_USERNAME, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::AUTH_USERNAME, serviceInfos::property::FLAG_REQUIRED),
|
||||||
property(serviceInfos::property::AUTH_PASSWORD, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::AUTH_PASSWORD, serviceInfos::property::FLAG_REQUIRED),
|
||||||
@ -83,6 +86,9 @@ const SMTPServiceInfos::props& SMTPServiceInfos::getProperties() const
|
|||||||
property("options.sasl.fallback", serviceInfos::property::TYPE_BOOLEAN, "false"),
|
property("options.sasl.fallback", serviceInfos::property::TYPE_BOOLEAN, "false"),
|
||||||
#endif // VMIME_HAVE_SASL_SUPPORT
|
#endif // VMIME_HAVE_SASL_SUPPORT
|
||||||
|
|
||||||
|
property("options.pipelining", serviceInfos::property::TYPE_BOOLEAN, "true"),
|
||||||
|
property("options.chunking", serviceInfos::property::TYPE_BOOLEAN, "true"),
|
||||||
|
|
||||||
// Common properties
|
// Common properties
|
||||||
property(serviceInfos::property::AUTH_USERNAME, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::AUTH_USERNAME, serviceInfos::property::FLAG_REQUIRED),
|
||||||
property(serviceInfos::property::AUTH_PASSWORD, serviceInfos::property::FLAG_REQUIRED),
|
property(serviceInfos::property::AUTH_PASSWORD, serviceInfos::property::FLAG_REQUIRED),
|
||||||
|
@ -169,7 +169,9 @@ void SMTPTransport::sendEnvelope
|
|||||||
|
|
||||||
|
|
||||||
const bool needReset = m_needReset;
|
const bool needReset = m_needReset;
|
||||||
const bool hasPipelining = m_connection->hasExtension("PIPELINING");
|
const bool hasPipelining = m_connection->hasExtension("PIPELINING") &&
|
||||||
|
getInfos().getPropertyValue <bool>(getSession(),
|
||||||
|
dynamic_cast <const SMTPServiceInfos&>(getInfos()).getProperties().PROPERTY_OPTIONS_PIPELINING);
|
||||||
|
|
||||||
ref <SMTPResponse> resp;
|
ref <SMTPResponse> resp;
|
||||||
ref <SMTPCommandSet> commands = SMTPCommandSet::create(hasPipelining);
|
ref <SMTPCommandSet> commands = SMTPCommandSet::create(hasPipelining);
|
||||||
@ -334,7 +336,10 @@ void SMTPTransport::send
|
|||||||
|
|
||||||
// If CHUNKING is not supported, generate the message to a temporary
|
// If CHUNKING is not supported, generate the message to a temporary
|
||||||
// buffer then use the send() method which takes an inputStream
|
// buffer then use the send() method which takes an inputStream
|
||||||
if (!m_connection->hasExtension("CHUNKING"))
|
if (!m_connection->hasExtension("CHUNKING") ||
|
||||||
|
!getInfos().getPropertyValue <bool>(getSession(),
|
||||||
|
dynamic_cast <const SMTPServiceInfos&>(getInfos()).getProperties().PROPERTY_OPTIONS_CHUNKING))
|
||||||
|
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
utility::outputStreamAdapter ossAdapter(oss);
|
utility::outputStreamAdapter ossAdapter(oss);
|
||||||
|
@ -57,6 +57,9 @@ public:
|
|||||||
serviceInfos::property PROPERTY_OPTIONS_SASL_FALLBACK;
|
serviceInfos::property PROPERTY_OPTIONS_SASL_FALLBACK;
|
||||||
#endif // VMIME_HAVE_SASL_SUPPORT
|
#endif // VMIME_HAVE_SASL_SUPPORT
|
||||||
|
|
||||||
|
serviceInfos::property PROPERTY_OPTIONS_PIPELINING;
|
||||||
|
serviceInfos::property PROPERTY_OPTIONS_CHUNKING;
|
||||||
|
|
||||||
// Common properties
|
// Common properties
|
||||||
serviceInfos::property PROPERTY_AUTH_USERNAME;
|
serviceInfos::property PROPERTY_AUTH_USERNAME;
|
||||||
serviceInfos::property PROPERTY_AUTH_PASSWORD;
|
serviceInfos::property PROPERTY_AUTH_PASSWORD;
|
||||||
|
Loading…
Reference in New Issue
Block a user