Отправка электронных писем и ответ на них — распространенная задача в веб-разработке, и функция PHP mail() предоставляет удобный способ выполнить эту задачу. В этой статье мы рассмотрим различные методы и примеры кода, которые помогут вам эффективно отвечать на электронные письма с помощью функции mail(). Итак, приступим!
Метод 1: анализ заголовков электронных писем
При ответе на электронное письмо крайне важно сохранить исходную цепочку писем. Для этого вы можете проанализировать заголовки электронных писем, извлечь необходимую информацию (например, адрес электронной почты и тему отправителя) и включить ее в свой ответ. Вот пример фрагмента кода, который поможет вам начать:
// Retrieve email headers
$headers = $_POST['headers'];
// Extract sender's email address and subject
$senderEmail = '';
$subject = '';
// Parse email headers
$lines = explode("\r\n", $headers);
foreach ($lines as $line) {
if (strpos($line, 'From:') !== false) {
$senderEmail = trim(str_replace('From:', '', $line));
} elseif (strpos($line, 'Subject:') !== false) {
$subject = trim(str_replace('Subject:', '', $line));
}
}
// Build your reply using the extracted information
$replyMessage = "Dear $senderEmail,\n\n";
$replyMessage .= "RE: $subject\n\n";
$replyMessage .= "Your reply message goes here.";
// Send the reply email using the mail() function
mail($senderEmail, "Re: $subject", $replyMessage);
Метод 2: включение оригинального сообщения
Чтобы обеспечить контекст и ясность вашего ответа, вы можете включить в него исходное сообщение. Вот фрагмент кода, демонстрирующий, как включить исходное сообщение в ответ:
// Retrieve the original message
$originalMessage = $_POST['message'];
// Build your reply with the original message
$replyMessage = "Dear $senderEmail,\n\n";
$replyMessage .= "RE: $subject\n\n";
$replyMessage .= "Thank you for your message. Here's my reply:\n\n";
$replyMessage .= "----- Original Message -----\n";
$replyMessage .= $originalMessage;
// Send the reply email using the mail() function
mail($senderEmail, "Re: $subject", $replyMessage);
Метод 3: добавление вложений
Если исходное письмо содержит вложения, вы также можете включить их в свой ответ. Вот пример того, как можно обрабатывать вложения:
// Retrieve the original attachments
$attachments = $_FILES['attachments'];
// Build your reply with attachments
$replyMessage = "Dear $senderEmail,\n\n";
$replyMessage .= "RE: $subject\n\n";
$replyMessage .= "Thank you for your message. Here's my reply:\n\n";
$replyMessage .= "----- Original Message -----\n";
$replyMessage .= $originalMessage;
// Attach the original attachments to the reply email
foreach ($attachments['tmp_name'] as $index => $tmpName) {
$attachmentName = $attachments['name'][$index];
$attachmentPath = $tmpName; // Replace with your desired attachment path
$replyMessage .= "\n\n----- Original Attachment: $attachmentName -----\n";
$replyMessage .= file_get_contents($attachmentPath);
}
// Send the reply email with attachments using the mail() function
mail($senderEmail, "Re: $subject", $replyMessage);