체크 아웃 우리의 백업 계획을 통합하는 기능을 보내십시오.
function smtpmailer($to, $from, $from_name, $subject, $body, $is_gmail = true) {
global $error;
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
if ($is_gmail) {
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = GUSER;
$mail->Password = GPWD;
} else {
$mail->Host = SMTPSERVER;
$mail->Username = SMTPUSER;
$mail->Password = SMTPPWD;
}
$mail->SetFrom($from, $from_name);
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($to);
if(!$mail->Send()) {
$error = 'Mail error: '.$mail->ErrorInfo;
return false;
} else {
$error = 'Message sent!';
return true;
}
}
그리고 마지막으로는 필요한 경우에만 (
$is_gmail = false
를 전달하여) 우리의 백업을 사용하여, 우리의 새로운 기능을 사용하십시오.
$msg = 'Hello World';
$subj = 'test mail message';
$to = '[email protected]';
$from = '[email protected]';
$name = 'yourName';
if (smtpmailer($to, $from, $name, $subj, $msg)) {
echo 'Yippie, message send via Gmail';
} else {
if (!smtpmailer($to, $from, $name, $subj, $msg, false)) {
if (!empty($error)) echo $error;
} else {
echo 'Yep, the message is send (after doing some hard work)';
}
}
예제 코드는 위에 링크 된 튜토리얼에서 가져온 것입니다.
오케이. 그러나 목록에있는 다른 smtp 서버에 대한 다양한 사용자 이름과 암호를 어떻게 제공합니까? –
그 메커니즘으로, 당신은하지 않습니다. - local-ish 제출 실패는 어쨌든 매우 드문 일입니다. 또한 특정 MX를 제공하는 모든 호스트가 동일한 자격 증명을 사용하는 것이 일반적입니다. 당신이 가지고 있지 않다면, 당신 자신의 서버 배열을 반복하고, 실패를 파악한 다음 각각에 대한 ID/패스를 재설정하십시오. – Synchro