Senden von E-Mails mit PHP

Während der Arbeit an dem Projekt musste ich einen speziellen „Fragebogen für den Antragsteller“ erstellen, in dem ich den gesamten Fragebogen an die hinter der Wunde angegebene E-Mail-Adresse senden musste, und ich erinnerte mich sofort an die Funktion mail () über PHP.


bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]]) 

Erforderliche Parameter:
  • Empfänger-E-Mail
  • Briefüberschrift
  • Brieftext

Optionale Parameter:
  • Zusätzliche E-Mail-Header
  • Erweiterte Befehlszeilenoptionen

Rückgabewert:
  • wahr, wenn der Brief zur Zustellung angenommen wurde
  • sonst falsch.


Einfachstes Beispiel

 <?php mail("E-mail ", "", "  \n 1-  \n 2-  \n 3- "); ?> 


Kommen wir zu einem komplexeren Beispiel.


 <?php $to = "<mail@example.com>, " ; $to .= "mail2@example.com>"; $subject = " "; $message = ' <p> </p> </br> <b>1-  </b> </br><i>2-  </i> </br>'; $headers = "Content-type: text/html; charset=windows-1251 \r\n"; $headers .= "From:    <from@example.com>\r\n"; $headers .= "Reply-To: reply-to@example.com\r\n"; mail($to, $subject, $message, $headers); ?> 


Zu Beginn legen wir fest, an wen der Brief adressiert ist. Die Variable & to ist dafür verantwortlich. Wenn jedoch mehrere Empfänger vorhanden sind, schreiben wir die E-Mail-Adressen durch Kommas getrennt. Mail.

Die Variablen $ subject und $ message werde ich nicht beschreiben, das ist schon klar.

In unserem Beispiel besteht die Variable $ headers aus 3 Zeilen:
  • In der ersten Zeile bestimmen wir den gesendeten HTML-Brief und die Windows-1251-Codierung.
  • Im 2. geben wir an, von wem der Brief stammt.
  • Geben Sie im 3. die E-Mail-Adresse an, um auf den Brief zu antworten.


Und jetzt der interessanteste Versandbrief mit Anhang (Anhang)


 $subject = " "; $message =" "; //  ,     , , ,    .. $filename = "file.doc"; //   $filepath = "files/file.doc"; //   //      ,    $boundary = "--".md5(uniqid(time())); //   $mailheaders = "MIME-Version: 1.0;\r\n"; $mailheaders .="Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; //       boundary $mailheaders .= "From: $user_email <$user_email>\r\n"; $mailheaders .= "Reply-To: $user_email\r\n"; $multipart = "--$boundary\r\n"; $multipart .= "Content-Type: text/html; charset=windows-1251\r\n"; $multipart .= "Content-Transfer-Encoding: base64\r\n"; $multipart .= \r\n; $multipart .= chunk_split(base64_encode(iconv("utf8", "windows-1251", $message))); //     //   $fp = fopen($filepath,"r"); if (!$fp) { print "   22"; exit(); } $file = fread($fp, filesize($filepath)); fclose($fp); //   $message_part = "\r\n--$boundary\r\n"; $message_part .= "Content-Type: application/octet-stream; name=\"$filename\"\r\n"; $message_part .= "Content-Transfer-Encoding: base64\r\n"; $message_part .= "Content-Disposition: attachment; filename=\"$filename\"\r\n"; $message_part .= \r\n; $message_part .= chunk_split(base64_encode($file)); $message_part .= "\r\n--$boundary--\r\n"; //    ,       $multipart .= $message_part; mail($to,$subject,$multipart,$mailheaders); //   //   60 . if (time_nanosleep(5, 0)) { unlink($filepath); } //   

Source: https://habr.com/ru/post/de444744/


All Articles