簡體   English   中英

通過HTML表單通過PHP自動發送電子郵件

[英]Automatic e-mail sending through PHP within HTML form

(TL; DR結尾)

我正在嘗試將HTML表單集成到我的PHP文件中,以便一旦客戶點擊我頁面上的“發送”按鈕,郵件就會自動發送到所需的電子郵件中。 HTML頁面上還有很多其他代碼,因此我只包含了表單。

<form method ="post"action="indexphp.php" id="mailform" name="mailform">

                Navn:               <input type="text" name="Navn" id="name" required><br>

        Kontakt e-post:     <input type="email" name="Epost" id="email" required><br>

        Kontakt telefon:    <input type="tel" name="Telefon" id="phone"><br>

        Fest:<select name="Fest" form="mailform"><option value="Lokalfest">Lokalfest</option><option value="Hjemmefest">Hjemmefest</option></select id="subject"><br>

        Kommune:            <input type="text"name="Kommune"style="width:150px;" required id="message"><br>

        Deltagere:          <input type="text"name="Deltagere"style="width:40px;" required id="message"><br>

        Rydding:            <input type="checkbox"name="Rydding"style="width:40px;" id="message"><br>

        Vasking:            <input type="checkbox"name="Vasking"style="width:40px;" id="message"><br>

        Dorvakt:            <input type="checkbox"name="Dorvakt"style="width:40px;" id="message"><br>

        Noe annet?:         <input type="text"name="Ekstra"style="width:150px;" id="message"><br>

        <input type="submit" value="Send">

這是我的PHP代碼:

<?php
if(isset($_POST['mailform']))

  $email = $_POST['email'] ;
  $name = $_POST['name'] ;
  $message = $_POST['message'] ;
  $from = $_POST['email'] ;
  $to = "desired mail adress, removed for privacy purposes";
  $subject = $_POST['subject'] ;
  $body = "From: $name\n E-mail: $email\n Message:\n $message";

  $headers = "From: $email" . "\r\n" .
  "Reply-To: $email" . "\r\n" .
  "X-Mailer: PHP/" . phpversion();

  mail ($to, $subject, $body, $headers);
    echo "<p>Bestillingen din har blitt sendt, du vil høre tilbake fra oss straks!</p>";
?>

發生的是,所有內容都正確發送到了我想要的電子郵件中,但郵件的唯一內容是:“發件人:-電子郵件:-郵件:”。

郵件中也沒有主題。

我在PHP中是一個完全菜鳥,而在HTML中卻是一個非常基礎的人,因此,我將感謝所有幫助和提示!

提前致謝。

您是否為了我們而翻譯了$ _POST值,或者這是您的實際代碼? 在您的表單中,例如,您沒有字段名稱。 但是在提供的代碼中,您引用的是$ _POST ['subject']等。

$ _POST中的鍵與通過表單提交的所有元素上的name屬性匹配。 您可以通過以下方式輕松地自己查看:

print_r($_POST);

同樣,盡管不相關,但HTML中的ID應當是唯一的。 您已經在您的許多元素中反復分配了消息ID。 不過,這並不是當前問題的一個因素,只是一個問題。

我最終解決了我的問題欄的一個細節。 我的HTML后答案:

<form method ="post"action="indexphp.php" id="mailform" name="mailform">
        Navn:               <input type="text" name="Navn" id="name" required><br>

        Kontakt e-post:     <input type="email" name="Epost" id="email" required><br>

        Kontakt telefon:    <input type="tel" name="Telefon" id="phone"><br>

        Fest:<select name="Fest" form="mailform"><option value="Lokalfest">Lokalfest</option><option value="Hjemmefest">Hjemmefest</option></select id="subject"><br>

        Kommune:            <input type="text"name="Kommune"style="width:150px;" required id="message"><br>

        Deltagere:          <input type="text"name="Deltagere"style="width:40px;" required id="message"><br>

        Rydding:            <input type="checkbox"name="Rydding"style="width:40px;" id="message"><br>

        Vasking:            <input type="checkbox"name="Vasking"style="width:40px;" id="message"><br>

        Dorvakt:            <input type="checkbox"name="Dorvakt"style="width:40px;" id="message"><br>

        Noe annet?:         <input type="text"name="Melding"style="width:150px;" id="message"><br>

        <input type="submit" value="Send">

我的PHP后答案:

<?php
if(isset($_POST['mailform']))

  $email = $_POST['Epost'] ;
  $name = $_POST['Navn'] ;
  $phone = $_POST['Telefon'] ;
  $message = $_POST['Melding'] ;
  $kommune = $_POST['Kommune'] ;
  $deltagere = $_POST['Deltagere'] ;
  $rydding = $_POST['Rydding'] ;
  $vasking = $_POST['Vasking'] ;
  $dorvakt = $_POST['Dorvakt'] ;
  $to = "example@example.com";
  $subject = $_POST['Fest'] ;
  $body = "From: $name\n E-mail: $email\n Telefon: $phone\n Kommune: $kommune\n Deltagere: $deltagere\n Rydding: $rydding\n Vasking: $vasking\n Dorvakt: $dorvakt\n Message: $message\n";

  $headers = "From: $email" . "\r\n" .
  "Reply-To: $email" . "\r\n" .
  "X-Mailer: PHP/" . phpversion();

  mail ($to, $subject, $body, $headers);
    echo "<p>Bestillingen din har blitt sendt, du vil høre tilbake fra oss straks!</p>";
?>

我的電子郵件仍然沒有顯示。 我對其進行了測試,並且效果很好,僅是在我收到的電子郵件中沒有發件人,但這並不是很大的問題,因為我獲得了電話號碼。

但是,我希望電子郵件顯示在我的電子郵件行的文本欄中。

我可以解決此問題,但是除了我提到的內容外,我不想搞亂整個電子郵件發送過程。

我在想$ headers部分肯定有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM