This should fix bug #500134 and adds some additional error checking on smtp email sends...

git-svn-id: file:///svn/phpbb/trunk@2008 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
the_systech 2002-01-28 21:56:56 +00:00
parent 9819d4f777
commit 8b836794be

View file

@ -148,24 +148,45 @@ function smtpmail($mail_to, $subject, $message, $headers = "")
$to_header = "To: "; $to_header = "To: ";
@reset( $mail_to_array ); @reset( $mail_to_array );
while( list( , $mail_to_address ) = each( $mail_to_array )) while( list( , $mail_to_address ) = each( $mail_to_array ))
{
//
// Add an additional bit of error checking to the To field.
//
$mail_to_address = trim($mail_to_address);
if ( preg_match('/.+\@.+/', $mail_to_address) )
{ {
fputs( $socket, "RCPT TO: $mail_to_address\r\n" ); fputs( $socket, "RCPT TO: $mail_to_address\r\n" );
server_parse( $socket, "250" ); server_parse( $socket, "250" );
}
$to_header .= "<$mail_to_address>, "; $to_header .= "<$mail_to_address>, ";
} }
// Ok now do the CC and BCC fields... // Ok now do the CC and BCC fields...
@reset( $bcc ); @reset( $bcc );
while( list( , $bcc_address ) = each( $bcc )) while( list( , $bcc_address ) = each( $bcc ))
{
//
// Add an additional bit of error checking to bcc header...
//
$bcc_address = trim( $bcc_address );
if ( preg_match('/.+\@.+/', $bcc_address) )
{ {
fputs( $socket, "RCPT TO: $bcc_address\r\n" ); fputs( $socket, "RCPT TO: $bcc_address\r\n" );
server_parse( $socket, "250" ); server_parse( $socket, "250" );
} }
}
@reset( $cc ); @reset( $cc );
while( list( , $cc_address ) = each( $cc )) while( list( , $cc_address ) = each( $cc ))
{
//
// Add an additional bit of error checking to cc header
//
$cc_address = trim( $cc_address );
if ( preg_match('/.+\@.+/', $cc_address) )
{ {
fputs($socket, "RCPT TO: $cc_address\r\n"); fputs($socket, "RCPT TO: $cc_address\r\n");
server_parse($socket, "250"); server_parse($socket, "250");
} }
}
// Ok now we tell the server we are ready to start sending data // Ok now we tell the server we are ready to start sending data
fputs($socket, "DATA\r\n"); fputs($socket, "DATA\r\n");