Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja mail()
Forum PHP.pl > Forum > Przedszkole
m4rku5
Jak skonstruować funkcję mail() aby wysyłał maile z formularza kontaktowego przez obcy serwer (podając email i hasło w skrypcie do konkretnego konta email na serwerze np. poczta.wp.pl)
Salvation
Najwygodniej, to skorzystać z dostępnych bibliotek.
- https://github.com/symfony/mailer
- https://github.com/PHPMailer/PHPMailer
uziom
Wysyłanie maili z formularza kontaktowego przez obcy serwer z wykorzystaniem funkcji mail() w PHP może być wykonane za pomocą protokołu SMTP. Aby to zrobić, musisz zdefiniować kilka zmiennych i funkcji, a następnie użyć ich do wysłania wiadomości e-mail przez serwer SMTP.

Zdefiniuj zmienne dla Twojego konta e-mail, w tym adres e-mail, hasło, nazwę nadawcy i odbiorcę

  1. $email_to = 'adres-odbiorcy@example.com';
  2. $email_subject = 'Temat wiadomości';
  3. $email_from = 'nazwa-nadawcy@example.com';
  4. $email_from_name = 'Nazwa Nadawcy';
  5. $email_body = 'Treść wiadomości';
  6. $smtp_host = 'smtp.example.com';
  7. $smtp_username = 'adres-email@example.com';
  8. $smtp_password = 'hasło-do-email';
  9. $smtp_port = 587;


Zdefiniuj funkcję send_email() do wysyłania wiadomości e-mail.
  1. function send_email($to, $subject, $body, $from, $from_name, $smtp_host, $smtp_username, $smtp_password, $smtp_port) {
  2. require_once('phpmailer/PHPMailerAutoload.php');
  3.  
  4. $mail = new PHPMailer;
  5. $mail->isSMTP();
  6. $mail->SMTPDebug = 0;
  7. $mail->Debugoutput = 'html';
  8. $mail->Host = $smtp_host;
  9. $mail->Port = $smtp_port;
  10. $mail->SMTPSecure = 'tls';
  11. $mail->SMTPAuth = true;
  12. $mail->Username = $smtp_username;
  13. $mail->Password = $smtp_password;
  14. $mail->setFrom($from, $from_name);
  15. $mail->addAddress($to);
  16. $mail->Subject = $subject;
  17. $mail->msgHTML($body);
  18.  
  19. if (!$mail->send()) {
  20. return false;
  21. } else {
  22. return true;
  23. }
  24. }

Wywołaj funkcję send_email() i przekaż zdefiniowane zmienne jako parametry.
  1. if (isset($_POST['submit'])) {
  2. $name = $_POST['name'];
  3. $email = $_POST['email'];
  4. $message = $_POST['message'];
  5. $body = "Od: $name<br>Email: $email<br>Treść: $message";
  6.  
  7. if (send_email($email_to, $email_subject, $body, $email_from, $email_from_name, $smtp_host, $smtp_username, $smtp_password, $smtp_port)) {
  8. echo 'Wiadomość została wysłana.';
  9. } else {
  10. echo 'Wysyłanie wiadomości nie powiodło się.';
  11. }
  12. }


Upewnij się, że w folderze z Twoim skryptem znajduje się folder phpmailer z biblioteką PHPMailer, którą można pobrać ze strony https://github.com/PHPMailer/PHPMailer.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.