mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-03 02:25:34 +00:00
fix 190775 patch by ch.ey@gmx.net, some error messages from smtp server not displayed to user, r=bienvenu, sr=mscott
This commit is contained in:
parent
faa8ecd75c
commit
e244cb6252
@ -110,7 +110,7 @@
|
|||||||
12523=Mail sent successfully
|
12523=Mail sent successfully
|
||||||
|
|
||||||
## @name NS_ERROR_SMTP_SERVER_ERROR
|
## @name NS_ERROR_SMTP_SERVER_ERROR
|
||||||
12524=An error occurred sending mail: SMTP server error. The server responded: %s Contact your mail administrator for assistance.
|
12524=An error occurred sending mail: SMTP server error. The server responded: %s\n Contact your mail administrator for assistance.
|
||||||
|
|
||||||
## @name NS_MSG_UNABLE_TO_SEND_LATER
|
## @name NS_MSG_UNABLE_TO_SEND_LATER
|
||||||
12525=Unable to save your message in order to send it later.
|
12525=Unable to save your message in order to send it later.
|
||||||
@ -241,6 +241,15 @@ noIdentities=You don't have any email identities yet. Create one with the Accou
|
|||||||
## @name NS_MSG_ERROR_DOING_FCC
|
## @name NS_MSG_ERROR_DOING_FCC
|
||||||
12571=There was an error copying the message to the Sent folder. Retry?
|
12571=There was an error copying the message to the Sent folder. Retry?
|
||||||
|
|
||||||
|
## @name NS_ERROR_SMTP_GREETING
|
||||||
|
12572=An error occurred sending mail: The mail server sent an incorrect greeting: %s.
|
||||||
|
|
||||||
|
## @name NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER_WITH_STARTTLS1
|
||||||
|
12573=An error occurred sending mail: Unable to connect to SMTP server %S via STARTTLS since he doesn't support EHLO. Please verify that your Mail/News account settings are correct and try again.
|
||||||
|
|
||||||
|
## @name NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER_WITH_STARTTLS2
|
||||||
|
12574=An error occurred sending mail: Unable to connect to SMTP server %S via STARTTLS since he doesn't offer STARTTLS In EHLO reponse. Please verify that your Mail/News account settings are correct and try again.
|
||||||
|
|
||||||
## Strings use for the save message dialog shown when the user close a message compose window
|
## Strings use for the save message dialog shown when the user close a message compose window
|
||||||
saveDlogTitle=Save Message
|
saveDlogTitle=Save Message
|
||||||
saveDlogMessage=Message has not been sent. Do you want to save the message in the Drafts folder?
|
saveDlogMessage=Message has not been sent. Do you want to save the message in the Drafts folder?
|
||||||
|
@ -140,4 +140,9 @@ private:
|
|||||||
|
|
||||||
#define NS_MSG_ERROR_ATTACHING_FILE NS_MSG_GENERATE_FAILURE(12570)
|
#define NS_MSG_ERROR_ATTACHING_FILE NS_MSG_GENERATE_FAILURE(12570)
|
||||||
#define NS_MSG_ERROR_DOING_FCC NS_MSG_GENERATE_FAILURE(12571)
|
#define NS_MSG_ERROR_DOING_FCC NS_MSG_GENERATE_FAILURE(12571)
|
||||||
|
|
||||||
|
#define NS_ERROR_SMTP_GREETING NS_MSG_GENERATE_FAILURE(12572)
|
||||||
|
|
||||||
|
#define NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER_WITH_STARTTLS1 NS_MSG_GENERATE_FAILURE(12573)
|
||||||
|
#define NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER_WITH_STARTTLS2 NS_MSG_GENERATE_FAILURE(12574)
|
||||||
#endif /* _nsMsgComposeStringBundle_H_ */
|
#endif /* _nsMsgComposeStringBundle_H_ */
|
||||||
|
@ -3650,7 +3650,10 @@ nsMsgComposeAndSend::DoDeliveryExitProcessing(nsIURI * aUri, nsresult aExitCode,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
nsXPIDLString eMsg;
|
nsXPIDLString eMsg;
|
||||||
if (aExitCode == NS_ERROR_SMTP_SEND_FAILED || aExitCode == NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER)
|
if (aExitCode == NS_ERROR_SMTP_SEND_FAILED ||
|
||||||
|
aExitCode == NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER ||
|
||||||
|
aExitCode == NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER_WITH_STARTTLS1 ||
|
||||||
|
aExitCode == NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER_WITH_STARTTLS2)
|
||||||
FormatStringWithSMTPHostNameByID(aExitCode, getter_Copies(eMsg));
|
FormatStringWithSMTPHostNameByID(aExitCode, getter_Copies(eMsg));
|
||||||
else
|
else
|
||||||
mComposeBundle->GetStringByID(aExitCode, getter_Copies(eMsg));
|
mComposeBundle->GetStringByID(aExitCode, getter_Copies(eMsg));
|
||||||
|
@ -125,7 +125,8 @@ nsresult nsExplainErrorDetails(nsISmtpUrl * aSmtpUrl, int code, ...)
|
|||||||
case NS_ERROR_SENDING_FROM_COMMAND:
|
case NS_ERROR_SENDING_FROM_COMMAND:
|
||||||
case NS_ERROR_SENDING_RCPT_COMMAND:
|
case NS_ERROR_SENDING_RCPT_COMMAND:
|
||||||
case NS_ERROR_SENDING_DATA_COMMAND:
|
case NS_ERROR_SENDING_DATA_COMMAND:
|
||||||
case NS_ERROR_SENDING_MESSAGE:
|
case NS_ERROR_SENDING_MESSAGE:
|
||||||
|
case NS_ERROR_SMTP_GREETING:
|
||||||
smtpBundle->GetStringByID(code, getter_Copies(eMsg));
|
smtpBundle->GetStringByID(code, getter_Copies(eMsg));
|
||||||
msg = nsTextFormatter::vsmprintf(eMsg, args);
|
msg = nsTextFormatter::vsmprintf(eMsg, args);
|
||||||
break;
|
break;
|
||||||
@ -449,7 +450,7 @@ PRInt32 nsSmtpProtocol::SmtpResponse(nsIInputStream * inputStream, PRUint32 leng
|
|||||||
|
|
||||||
line = m_lineStreamBuffer->ReadNextLine(inputStream, ln, pauseForMoreData);
|
line = m_lineStreamBuffer->ReadNextLine(inputStream, ln, pauseForMoreData);
|
||||||
|
|
||||||
if(pauseForMoreData || !line)
|
if (pauseForMoreData || !line)
|
||||||
{
|
{
|
||||||
SetFlag(SMTP_PAUSE_FOR_READ); /* pause */
|
SetFlag(SMTP_PAUSE_FOR_READ); /* pause */
|
||||||
PR_Free(line);
|
PR_Free(line);
|
||||||
@ -460,25 +461,30 @@ PRInt32 nsSmtpProtocol::SmtpResponse(nsIInputStream * inputStream, PRUint32 leng
|
|||||||
|
|
||||||
PR_LOG(SMTPLogModule, PR_LOG_ALWAYS, ("SMTP Response: %s", line));
|
PR_LOG(SMTPLogModule, PR_LOG_ALWAYS, ("SMTP Response: %s", line));
|
||||||
cont_char = ' '; /* default */
|
cont_char = ' '; /* default */
|
||||||
sscanf(line, "%d%c", &m_responseCode, &cont_char);
|
// sscanf() doesn't update m_responseCode if line doesn't start
|
||||||
|
// with a number. That can be dangerous. So be sure to set
|
||||||
|
// m_responseCode to 0 if no items read.
|
||||||
|
if (PR_sscanf(line, "%d%c", &m_responseCode, &cont_char) <= 0)
|
||||||
|
m_responseCode = 0;
|
||||||
|
|
||||||
if(m_continuationResponse == -1)
|
if (m_continuationResponse == -1)
|
||||||
{
|
{
|
||||||
if (cont_char == '-') /* begin continuation */
|
if (cont_char == '-') /* begin continuation */
|
||||||
m_continuationResponse = m_responseCode;
|
m_continuationResponse = m_responseCode;
|
||||||
|
|
||||||
if(PL_strlen(line) > 3)
|
// display the whole message if no valid response code or
|
||||||
m_responseText = line+4;
|
// message shorter than 4 chars
|
||||||
|
m_responseText = (m_responseCode >= 100 && PL_strlen(line) > 3) ? line + 4 : line;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ /* have to continue */
|
{ /* have to continue */
|
||||||
if (m_continuationResponse == m_responseCode && cont_char == ' ')
|
if (m_continuationResponse == m_responseCode && cont_char == ' ')
|
||||||
m_continuationResponse = -1; /* ended */
|
m_continuationResponse = -1; /* ended */
|
||||||
|
|
||||||
if (m_responseText.CharAt(m_responseText.Length() - 1) != '\n')
|
if (m_responseText.CharAt(m_responseText.Length() - 1) != '\n')
|
||||||
m_responseText += "\n";
|
m_responseText += "\n";
|
||||||
if(PL_strlen(line) > 3)
|
|
||||||
m_responseText += line+4;
|
m_responseText += (PL_strlen(line) > 3) ? line + 4 : line;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_responseCode == 220 && m_responseText.Length() && !m_tlsInitiated)
|
if (m_responseCode == 220 && m_responseText.Length() && !m_tlsInitiated)
|
||||||
@ -486,7 +492,7 @@ PRInt32 nsSmtpProtocol::SmtpResponse(nsIInputStream * inputStream, PRUint32 leng
|
|||||||
m_nextStateAfterResponse = SMTP_EXTN_LOGIN_RESPONSE;
|
m_nextStateAfterResponse = SMTP_EXTN_LOGIN_RESPONSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_continuationResponse == -1) /* all done with this response? */
|
if (m_continuationResponse == -1) /* all done with this response? */
|
||||||
{
|
{
|
||||||
m_nextState = m_nextStateAfterResponse;
|
m_nextState = m_nextStateAfterResponse;
|
||||||
ClearFlag(SMTP_PAUSE_FOR_READ); /* don't pause */
|
ClearFlag(SMTP_PAUSE_FOR_READ); /* don't pause */
|
||||||
@ -501,9 +507,17 @@ PRInt32 nsSmtpProtocol::ExtensionLoginResponse(nsIInputStream * inputStream, PRU
|
|||||||
PRInt32 status = 0;
|
PRInt32 status = 0;
|
||||||
nsCAutoString buffer("EHLO ");
|
nsCAutoString buffer("EHLO ");
|
||||||
|
|
||||||
if(m_responseCode != 220)
|
if (m_responseCode != 220)
|
||||||
{
|
{
|
||||||
m_urlErrorState = NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER;
|
#ifdef DEBUG
|
||||||
|
nsresult rv =
|
||||||
|
#endif
|
||||||
|
nsExplainErrorDetails(m_runningURL, NS_ERROR_SMTP_GREETING,
|
||||||
|
m_responseText.get());
|
||||||
|
|
||||||
|
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to explain SMTP error");
|
||||||
|
|
||||||
|
m_urlErrorState = NS_ERROR_BUT_DONT_SHOW_ALERT;
|
||||||
return(NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER);
|
return(NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -640,7 +654,7 @@ PRInt32 nsSmtpProtocol::SendEhloResponse(nsIInputStream * inputStream, PRUint32
|
|||||||
if (m_prefTrySSL == PREF_SECURE_ALWAYS_STARTTLS)
|
if (m_prefTrySSL == PREF_SECURE_ALWAYS_STARTTLS)
|
||||||
{
|
{
|
||||||
m_nextState = SMTP_ERROR_DONE;
|
m_nextState = SMTP_ERROR_DONE;
|
||||||
m_urlErrorState = NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER;
|
m_urlErrorState = NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER_WITH_STARTTLS1;
|
||||||
return(NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER);
|
return(NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -736,8 +750,11 @@ PRInt32 nsSmtpProtocol::SendEhloResponse(nsIInputStream * inputStream, PRUint32
|
|||||||
if(TestFlag(SMTP_EHLO_SIZE_ENABLED) &&
|
if(TestFlag(SMTP_EHLO_SIZE_ENABLED) &&
|
||||||
m_sizelimit > 0 && (PRInt32)m_totalMessageSize > m_sizelimit)
|
m_sizelimit > 0 && (PRInt32)m_totalMessageSize > m_sizelimit)
|
||||||
{
|
{
|
||||||
nsresult rv = nsExplainErrorDetails(m_runningURL,
|
#ifdef DEBUG
|
||||||
NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1, m_sizelimit);
|
nsresult rv =
|
||||||
|
#endif
|
||||||
|
nsExplainErrorDetails(m_runningURL,
|
||||||
|
NS_ERROR_SMTP_PERM_SIZE_EXCEEDED_1, m_sizelimit);
|
||||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to explain SMTP error");
|
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to explain SMTP error");
|
||||||
|
|
||||||
m_urlErrorState = NS_ERROR_BUT_DONT_SHOW_ALERT;
|
m_urlErrorState = NS_ERROR_BUT_DONT_SHOW_ALERT;
|
||||||
@ -821,7 +838,7 @@ PRInt32 nsSmtpProtocol::ProcessAuth()
|
|||||||
else if (m_prefTrySSL == PREF_SECURE_ALWAYS_STARTTLS)
|
else if (m_prefTrySSL == PREF_SECURE_ALWAYS_STARTTLS)
|
||||||
{
|
{
|
||||||
m_nextState = SMTP_ERROR_DONE;
|
m_nextState = SMTP_ERROR_DONE;
|
||||||
m_urlErrorState = NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER;
|
m_urlErrorState = NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER_WITH_STARTTLS2;
|
||||||
return(NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER);
|
return(NS_ERROR_COULD_NOT_LOGIN_TO_SMTP_SERVER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user