mirror of
https://github.com/php/php-src.git
synced 2024-11-24 02:15:04 +08:00
- Fixed bug #28038 (Sent incorrect RCPT TO commands to SMTP server)
This commit is contained in:
parent
26f27ad7a8
commit
827469c94e
1
NEWS
1
NEWS
@ -146,6 +146,7 @@ PHP NEWS
|
|||||||
com, Kalle)
|
com, Kalle)
|
||||||
- Fixed bug #38091 (Mail() does not use FQDN when sending SMTP helo).
|
- Fixed bug #38091 (Mail() does not use FQDN when sending SMTP helo).
|
||||||
(Kalle, Rick Yorgason)
|
(Kalle, Rick Yorgason)
|
||||||
|
- Fixed bug #28038 (Sent incorrect RCPT TO commands to SMTP server) (Garrett)
|
||||||
|
|
||||||
30 Jun 2009, PHP 5.3.0
|
30 Jun 2009, PHP 5.3.0
|
||||||
- Upgraded bundled PCRE to version 7.9. (Nuno)
|
- Upgraded bundled PCRE to version 7.9. (Nuno)
|
||||||
|
@ -422,7 +422,7 @@ static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char
|
|||||||
}
|
}
|
||||||
|
|
||||||
SMTP_SKIP_SPACE(RPath);
|
SMTP_SKIP_SPACE(RPath);
|
||||||
snprintf(Buffer, MAIL_BUFFER_SIZE, "MAIL FROM:<%s>\r\n", RPath);
|
FormatEmailAddress(Buffer, RPath, "MAIL FROM:<%s>\r\n");
|
||||||
if ((res = Post(Buffer)) != SUCCESS) {
|
if ((res = Post(Buffer)) != SUCCESS) {
|
||||||
return (res);
|
return (res);
|
||||||
}
|
}
|
||||||
@ -437,7 +437,7 @@ static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char
|
|||||||
while (token != NULL)
|
while (token != NULL)
|
||||||
{
|
{
|
||||||
SMTP_SKIP_SPACE(token);
|
SMTP_SKIP_SPACE(token);
|
||||||
snprintf(Buffer, MAIL_BUFFER_SIZE, "RCPT TO:<%s>\r\n", token);
|
FormatEmailAddress(Buffer, token, "RCPT TO:<%s>\r\n");
|
||||||
if ((res = Post(Buffer)) != SUCCESS) {
|
if ((res = Post(Buffer)) != SUCCESS) {
|
||||||
efree(tempMailTo);
|
efree(tempMailTo);
|
||||||
return (res);
|
return (res);
|
||||||
@ -458,7 +458,7 @@ static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char
|
|||||||
while (token != NULL)
|
while (token != NULL)
|
||||||
{
|
{
|
||||||
SMTP_SKIP_SPACE(token);
|
SMTP_SKIP_SPACE(token);
|
||||||
snprintf(Buffer, MAIL_BUFFER_SIZE, "RCPT TO:<%s>\r\n", token);
|
FormatEmailAddress(Buffer, token, "RCPT TO:<%s>\r\n");
|
||||||
if ((res = Post(Buffer)) != SUCCESS) {
|
if ((res = Post(Buffer)) != SUCCESS) {
|
||||||
efree(tempMailTo);
|
efree(tempMailTo);
|
||||||
return (res);
|
return (res);
|
||||||
@ -488,7 +488,7 @@ static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char
|
|||||||
while (token != NULL)
|
while (token != NULL)
|
||||||
{
|
{
|
||||||
SMTP_SKIP_SPACE(token);
|
SMTP_SKIP_SPACE(token);
|
||||||
snprintf(Buffer, MAIL_BUFFER_SIZE, "RCPT TO:<%s>\r\n", token);
|
FormatEmailAddress(Buffer, token, "RCPT TO:<%s>\r\n");
|
||||||
if ((res = Post(Buffer)) != SUCCESS) {
|
if ((res = Post(Buffer)) != SUCCESS) {
|
||||||
efree(tempMailTo);
|
efree(tempMailTo);
|
||||||
return (res);
|
return (res);
|
||||||
@ -513,7 +513,7 @@ static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char
|
|||||||
while (token != NULL)
|
while (token != NULL)
|
||||||
{
|
{
|
||||||
SMTP_SKIP_SPACE(token);
|
SMTP_SKIP_SPACE(token);
|
||||||
snprintf(Buffer, MAIL_BUFFER_SIZE, "RCPT TO:<%s>\r\n", token);
|
FormatEmailAddress(Buffer, token, "RCPT TO:<%s>\r\n");
|
||||||
if ((res = Post(Buffer)) != SUCCESS) {
|
if ((res = Post(Buffer)) != SUCCESS) {
|
||||||
efree(tempMailTo);
|
efree(tempMailTo);
|
||||||
return (res);
|
return (res);
|
||||||
@ -546,7 +546,7 @@ static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char
|
|||||||
while (token != NULL)
|
while (token != NULL)
|
||||||
{
|
{
|
||||||
SMTP_SKIP_SPACE(token);
|
SMTP_SKIP_SPACE(token);
|
||||||
snprintf(Buffer, MAIL_BUFFER_SIZE, "RCPT TO:<%s>\r\n", token);
|
FormatEmailAddress(Buffer, token, "RCPT TO:<%s>\r\n");
|
||||||
if ((res = Post(Buffer)) != SUCCESS) {
|
if ((res = Post(Buffer)) != SUCCESS) {
|
||||||
efree(tempMailTo);
|
efree(tempMailTo);
|
||||||
return (res);
|
return (res);
|
||||||
@ -960,3 +960,30 @@ static unsigned long GetAddr(LPSTR szHost)
|
|||||||
}
|
}
|
||||||
return (lAddr);
|
return (lAddr);
|
||||||
} /* end GetAddr() */
|
} /* end GetAddr() */
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
// Name: int FormatEmailAddress
|
||||||
|
// Input:
|
||||||
|
// Output:
|
||||||
|
// Description: Formats the email address to remove any content ouside
|
||||||
|
// of the angle brackets < > as per RFC 2821.
|
||||||
|
//
|
||||||
|
// Returns the invalidly formatted mail address if the < > are
|
||||||
|
// unbalanced (the SMTP server should reject it if it's out of spec.)
|
||||||
|
//
|
||||||
|
// Author/Date: garretts 08/18/2009
|
||||||
|
// History:
|
||||||
|
//********************************************************************/
|
||||||
|
int FormatEmailAddress(char* Buffer, char* EmailAddress, char* FormatString ) {
|
||||||
|
char *tmpAddress1, *tmpAddress2;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
if( (tmpAddress1 = strchr(EmailAddress, '<')) && (tmpAddress2 = strchr(tmpAddress1, '>')) ) {
|
||||||
|
*tmpAddress2 = 0; // terminate the string temporarily.
|
||||||
|
result = snprintf(Buffer, MAIL_BUFFER_SIZE, FormatString , tmpAddress1+1);
|
||||||
|
*tmpAddress2 = '>'; // put it back the way it was.
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return snprintf(Buffer, MAIL_BUFFER_SIZE , FormatString , EmailAddress );
|
||||||
|
} /* end FormatEmailAddress() */
|
||||||
|
Loading…
Reference in New Issue
Block a user