Implementacja struktury maila

Implementacja struktury maila
Csysiu
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 65
0

Witam.

Mam problem. Proszę o pomoc.

Chciałbym uzyskać taki efekt po wysłaniu maila z formularza kontaktowego ze strony.

Imię i nazwisko: Jan Kowalski
Adres E-mail: domena@wp.pl
Treść wiadomości: treść użytkownika z formularza kontaktowego

Kopiuj
<?php

require_once 'class.phpmailer.php';

$_POST = array_map('trim', $_POST);

$error = false;

if (!isset($_POST['contact_name']) || empty($_POST['contact_name'])) {
    $error = true;
}

if (!isset($_POST['contact_email']) || empty($_POST['contact_email']) || !PHPMailer::ValidateAddress($_POST['contact_email'])) {
    $error = true;
}

if (!isset($_POST['contact_body']) || empty($_POST['contact_body'])) {
    $error = true;
}

if (!isset($_POST['contact_check']) || empty($_POST['contact_check']) || (int) $_POST['contact_check'] !== ((int) $_POST['contact_check_data'][0] * (int) $_POST['contact_check_data'][1])) {
    $error = true;
}

if ($error) {
    exit('nok');
}

$mail = new PHPMailer();

$mail->CharSet = 'UTF-8';

$mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
$mail->AddAddress('example@example.com');
$mail->Subject = 'Wiadomość ze strony internetowej';
$mail->Body = $_POST['contact_body'];

if (!$mail->Send()) {
    exit('nok');
}

exit('ok'); 

Formularz:

Kopiuj
 <form action="form/send.php" method="post" id="contactform">
                <fieldset>
                    <input type="text" name="contact_name" placeholder="Imię i nazwisko" required="required" tabindex="1" />
                    <input type="email" name="contact_email" placeholder="Adres e-mail" required="required" tabindex="2" />
                    <textarea rows="5" columns="10" name="contact_body" placeholder="Treść wiadomości" required="required" tabindex="3"></textarea>
                    <input type="submit" value="Wyślij" tabindex="5" />Podaj wynik: <span class="form_check_1"></span> &times; <span class="form_check_2"></span> = <input type="text" name="contact_check" maxlength="2" tabindex="4" />
                    <input type="hidden" name="contact_check_data" value="" />
                </fieldset>
            </form> 
spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
0

I jaki masz problem?

Csysiu
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 65
0

Powiem szczerze, że nie potrafię przerobić kodu, aby była uzyskać efekt, którego oczekuję.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1
  1. Ten zbitek słów w tytule wątku nie ma żadnego sensu.
  2. Jako zawartość maila możesz ustawić kod HTML, więc nie widzę żadnego problemu.
Csysiu
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 65
0
Patryk27 napisał(a):

Jako zawartość maila możesz ustawić kod HTML, więc nie widzę żadnego problemu.

Mógłbyś mi napisać jak Ty to widzisz ?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Najlepiej byłoby wykorzystać jakiś system szablonów, ale na upartego można choćby i tak:

Kopiuj
$mail->Body = '
<table>
	<tbody>
		<tr>
			<td>Imię i nazwisko</td>
			<td>' . $cośtam .'</td>
		</tr>
		<tr>
			<td>Adres mailowy</td>
			<td>' . $cośtam2 .'</td>
		</tr>
	</tbody>
</table>
';

Nie bawiłem się z tym, więc być może w celu włączenia obsługi HTML wymagane będzie wywołanie jakiejś dodatkowel metody albo pisanie do BodyHtml, albo co tam jeszcze można wymyślić, więc musiałbyś zerknąć do dokumentacji - ale generalnie idea taka jak przedstawiłem.

Csysiu
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 65
0

Zastosowałem podobną metodę, ale ważne że działa. Za pomocą POST wysłałem na maila co chciałem:) tylko problem z html, bo nie formatuje.
A drugie pytanie to jak można zrobić potwierdzenie na maila po wysłaniu wiadomości poprzez formularz, np: "Dziękujemy za kontakt, nie bawem skontaktujemy się z Tobą. Wiadomość wygenerowana automatycznie. Prosimy na nią nie odpowiadać."

Tumeg
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 687

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.