Bagaimana cara mengirim email dengan php pake teks format html?

Saya ingin membuat fitur mengirim email dengan pesan berformat html, tpi saya terkena internal server error mulu. Mohon bantuannya. apakah ada yang salah pada script saya? kalau ada yg salah, mohon diberi pembetulan. Maaf saya masih pemula

contoh indexnya

<form action="send.php" method="post">
         <div class="row">
            <div class="col-md-3">
                <div class="form-group">
                    <label>Username</label>
                    <input type="text" class="form-control" placeholder="Username" name="username">
                </div>
            </div>
            <div class="col-md-4">
                <div class="form-group">
                    <label for="exampleInputEmail1">Email address</label>
                    <input type="email" class="form-control" placeholder="Email" name="email">
                </div>
            </div>
        </div>

        <button type="submit" class="btn btn-info btn-fill pull-right">SEND</button>
        <div class="clearfix"></div>
     </form>

send.php, script pengirim emailnya

<?php

$mail = $_POST['email'];
$nama = $_POST['username'];

$subjek = 'Mail Contoh';
$mail1 = $mail;

$body = "<h1>Hai $nama</h1>email kamu : $mail belum di verifikasi. silahkan kunjungi web kami untuk
<a href="#">verifikasi</a>";

$headers = "From: Admin@contoh.com\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($mail1, $subjek." #".rand(1000,10000), $body, $headers);
?>
<?php
$random = rand(1000,5000);
?>

<meta content='0;url=./email.html' http-equiv='refresh'/>
</head><body>
</html>
avatar novan1
@novan1

16 Kontribusi 1 Poin

Diperbarui 5 tahun yang lalu

2 Jawaban:

coba kyk gini dibagian headers <pre> $headers = "From: Admin@contoh.com" ."\r\n"; $headers .= "Content-type: text/html". "\r\n"; @mail($mail1, $subjek, $body, $headers); if(@mail) echo "Email sent successfully !!"; </pre> dan itu rand buat apa?

avatar bosque
@bosque

187 Kontribusi 104 Poin

Dipost 5 tahun yang lalu

untuk mail sendiri saya menggunakan PHPMailer = [link]https://github.com/PHPMailer/PHPMailer[/link] dan untuk penggunaannya sendiri lebih mudah dan bisa import kode HTML. dan untuk penggunaannya agar lebih dinamis bisa menggunakan fungsi spt dibawah ini:

<pre> &lt;?php // Import PHPMailer classes into the global namespace // These must be at the top of your script, not inside a function use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader require 'mail/vendor/autoload.php';

function sendmail($untuk, $judul, $isi){ $body = '&lt;style&gt; .judul { font-size:30px;} .content {font-size:14px;} &lt;/style&gt;&lt;h1 class="judul"&gt;'. $judul .'&lt;/h1&gt;&lt;p class="content"&gt;'. $isi .'&lt;/p&gt;';

$mail = new PHPMailer(true); try { //Server settings $mail-&gt;isSMTP(); // Set untuk menggunakan SMTP $mail-&gt;Host = 'smtp.gmail.com'; // tentukan Hostnya dan disini saya menggunakan Gmail $mail-&gt;SMTPAuth = true; // Enable SMTP autentifikasi $mail-&gt;Username = 'usersekolahkoding@gmail.com'; // SMTP username $mail-&gt;Password = 'kopinikmatgakbikinkembung'; // SMTP password $mail-&gt;SMTPSecure = 'ssl'; // menghidupkan TLS encryption, ssl juga $mail-&gt;Port = 465; // TCP port yang digunakan Gmail, cari port yang digunakan oleh host anda

  //Recipients
  $mail-&amp;gt;setFrom(&#039;no-reply@sekolahkoding.com&#039;, &#039;ini judul dari mana&#039;); // tentukan dari mana 
                  email ini berasal
  $mail-&amp;gt;addReplyTo(&#039;no-reply@annisa.com&#039;, &#039;Information&#039;); // tentukan kepada siapa user akan 
                     mengirim kembali
  
  // looping dikarenakan fungsi ini bisa mengirim ke beberapa orang dengan mekstrak data array
  // $untuk disini bersifat array
  foreach($untuk as $email =&amp;gt; $name)
  {
     $mail-&amp;gt;AddCC($email, $name); // tentukan ke pengirim lain
     $mail-&amp;gt;addAddress($email); // dikirim kepada siapa
  }

  //Content
  $mail-&amp;gt;isHTML(true); // Tentukan format email akan menggunakan HTML
  $mail-&amp;gt;Subject = $judul; // tentukan judulnya dengan mengambil varible yang telah diinput
  $mail-&amp;gt;Body    = $body; // sama seperti $judul

  $mail-&amp;gt;send(); // mengirim
  return true; // kembalikan data true, dan ini akan dieksekusi di file eksekusi nantinya

} catch (Exception $e) { return false; // jika tidak kembalikan data false }

} </pre>

untuk template emailnya sendiri saya menggunakan [link]https://beefree.io/templates/[/link] agar tampilan menjadi lebih menarik. dan untuk eksekusinya sendiri spt dibawah ini:

<pre>

// membuat email beserta namanya menggunakan assosiative Array $emailnama = array("ponpes@gmail.com" =&gt; "Pondok Pesantren", "lewatmana@saya.com" =&gt; "Lewatmana.com" );

// seperti yang sindir diatas, isi dibuat agar lebih dinamis. $isi = "Selamat, anda mendapatkan Voucher Sebesar &lt;b style='font-size:18px;'&gt; 10 &lt;/b&gt; dari Admin. Silahkan gunakan Voucher ini untuk digunakan pada Promo yang tersedia di Tokokami :D";

// spt saya sindir diatas, jika fungsi sendmail mengembalikan data true maka berhasil, sebaliknya. if (sendmail($emailnama,"Voucher Gratis",$isi) == true) { // jika berhasil, kembalikan pesan success echo "email berhasil di kirim"; } else { // sebaliknya jika gagal echo "Maff sedikit kesalahan!"; } </pre>

jangan pikirkan "banyak yang harus saya ubah", ente cuma perlu mengubah kepada siapa yang akan dikirim beserta isinya dan juga username password host yang telah anda gunakan sebagai contoh saya menggunakan GMAIL untuk mengirim email. semoga artikel diatas bisa membantu rsp.Muhammad Adil :D

avatar mhdadil
@mhdadil

105 Kontribusi 61 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban