SMTP 로 메 일 보 내기
$params = array (
'SmtpServer' => 'mail.XXX.com',
'SmtpAuth' => '1',
'SmtpUser' => '[email protected]',
'SmtpPassword' => 'XXX',
'SystemMailer' => 'Cor Inc.',
'SystemMailAddress' => '[email protected]',
);
define("MAIL_SMTP_SERVER", $params['SmtpServer']);
define("MAIL_AUTH", $params['SmtpAuth']);
define("MAIL_USERNAME", $params['SmtpUser']);
define("MAIL_PASSWORD", $params['SmtpPassword']);
define('SYSTEM_MAILER', $params['SystemMailer']);
define("SUPPORT_EMAIL",$params['SystemMailAddress']);
/**
* SMTP
*
* @param array $to
* array("will"=>"[email protected]") key , value , ;
* @param string $from_name
* @param string $from
* @param string $subject
* @param string $message : HTML
* @param string $charset gbk
* @return int
* 0 , 0 .
*/
function SendMail($to, $from_name,$from, $subject, $message , $charset="gbk")
{
//
if(!$from_name) $from_name = SYSTEM_MAILER;
if(!$from) $from = SUPPORT_EMAIL;
if( SYSTEM_MAILER && function_exists('mail'))// sendmail
{
$message = str_replace("\r", '', $message);
if(!is_array($to)) return -7;
foreach($to as $key=>$email)
{
if($email)
{
@mail($email, $subject, $message, "From: $from");
}
}
}
else // SMTP
{
//return SmtpSendMail($tmp, $from_name,$from, $subject, $message, $charset);
//
if(is_array($to)){
foreach($to as $key=>$value){
$tmp[$key]=$value;
if(count($tmp)==10){
$result[]=SmtpSendMail($tmp, $from_name,$from, $subject, $message, $charset);
$tmp="";
}
}
if($tmp){
return SmtpSendMail($tmp, $from_name,$from, $subject, $message, $charset);
}else{
return array_pop($result);
}
}else{
return -7;
}
}
return 0;
}
function SmtpSendMail($to, $from_name,$from, $subject, $message, $charset="gbk")
{
$smtp = explode(":",MAIL_SMTP_SERVER);
$check = MAIL_AUTH;
$smtp_host = $smtp[0];
$smtp_port = $smtp[1] ? $smtp[1] : 25;
$mail_debug = $GLOBALS['queue_debug'];
if ($check) {
$username = MAIL_USERNAME;
$password = MAIL_PASSWORD;
}
$s_from = SUPPORT_EMAIL;
$fp = @fsockopen ($smtp_host, $smtp_port, $errno, $errstr, 10);
if (!$fp ) return -1;
if(function_exists("stream_set_blocking")){
stream_set_blocking($fp, true);
} else {
set_socket_blocking($fp, true );
}
stream_set_timeout($fp,10);
$lastmessage=fgets($fp,512);
//
if($mail_debug){
echo $lastmessage."\r
";
}
if ( substr($lastmessage,0,3) != 220 ) return -1;
$yourname = "YOURNAME";
if($check == "1") $lastact="HELO ".$yourname."\r
";
else $lastact="HELO ".$yourname."\r
";
fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
//
if($mail_debug){
echo $lastact;
echo $lastmessage;
}
if (substr($lastmessage,0,3) != 220 ) return -2;
if ($check=="1") {
$lastact="AUTH LOGIN"."\r
";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
//
if($mail_debug){
echo $lastact;
echo $lastmessage;
}
if (substr($lastmessage,0,3) != 334) return -3;
$lastact=base64_encode($username)."\r
";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
//
if($mail_debug){
echo $lastact;
echo $lastmessage;
}
if (substr($lastmessage,0,3) != 334) return -4;
$lastact=base64_encode($password)."\r
";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
//
if($mail_debug){
echo $lastact;
echo $lastmessage;
}
if (substr($lastmessage,0,3) != "235") return -5;
}
$lastact="MAIL FROM: <$s_from>\r
";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
//
if($mail_debug){
echo $lastact;
echo $lastmessage;
}
if (substr($lastmessage,0,3) != 250) return -6;
$i=0;
if(is_array($to)){
foreach($to as $key=>$email){
if($email){
$lastact = "RCPT TO: <$email>\r
";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
//
if($mail_debug){
echo $lastact;
echo $lastmessage;
}
if (substr($lastmessage,0,3) == 250){
//return -7;
$i++;
}
$tomails[]="$key<$email>";
}
}
if($i<1) return -7;
}
else{
return -7;
}
$lastact="DATA\r
";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
//
if($mail_debug){
echo $lastact;
echo $lastmessage;
}
if (substr($lastmessage,0,3) != 354) return -8;
$head .= "MIME-Version: 1.0\r
";
$head .= "Content-type: text/html; charset=$charset\r
";
$head .= "Subject: $subject\r
";
$message = $head."\r
".$message;
$head="From: \"".$from_name."\" <$from>\r
";
$message = $head.$message;
//$head="To: \"".$to_name."\" <$to>\r
";
$head="To: ".implode(",",$tomails)."\r
";
$message = $head.$message;
$message .= "\r
.\r
";
fputs($fp, $message);
//
if($mail_debug){
$lastmessage = fgets ($fp,512);
echo $head;
echo $lastmessage;
}
$lastact="QUIT\r
";
fputs($fp,$lastace);
fclose($fp);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
React 구성 요소에서 소켓 이벤트 리스너가 여러 번 실행됩니다.기본적이지만 종종 간과되는 사이드 프로젝트를 하면서 배운 것이 있습니다. 이 프로젝트에는 단순히 두 가지 주요 부분이 포함되어 있습니다. 프런트 엔드: 반응 및 재료 UI 백엔드: Express, Typescript...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.