PHPMAILER работает правильно на моем сайте. То, что я хотел бы сделать, это разделить часть конфигурации в отдельную функцию, так что я создаю разные электронные письма с ответами, и все, что мне нужно сделать, это вызвать функцию emailConfig()
внутри различных функций ответа.
function continuedInquiry() {
//config portion I want to separate
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = SMTP::DEBUG_OFF;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->SMTPAuth = true;
$mail->Username = 'example@gmail.com';
$mail->Password = 'password';
/**
*rest of the phpmailer code
*/
$mail->send();
notify();
}
function notify() {
//notification email
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = SMTP::DEBUG_OFF;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->SMTPAuth = true;
$mail->Username = 'example@gmail.com';
$mail->Password = 'password';
/**
*rest of the phpmailer code
*/
}
Это работает как надо, но поскольку я использую несколько почтовиков, я бы хотел разделить часть конфигурации на отдельную функцию emailConfig()
, например:
function emailConfig() {
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = SMTP::DEBUG_OFF;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->SMTPAuth = true;
$mail->Username = 'example@gmail.com';
$mail->Password = 'password';
}
, и вызвать ее в другом почтовике функции:
function continuedInquiry() {
emailConfig();
/**
*rest of the phpmailer code
*/
$mail->send();
notify();
}
//and so on
Но я продолжаю получать сообщение о том, что $ mail не определено:
![enter image description here](https://i.stack.imgur.com/n2hPJ.png)
Я пытался Вернись, я пробовал аргументы. Это могло бы упростить вещи, но я не могу заставить его работать.