Sendmail di PHP menggunakan mail(), SMTP dengan Phpmailer

0
(0)

oleh Vincy. Terakhir diubah pada 10 Oktober 2021.

Sendmail di PHP dimungkinkan hanya dengan satu baris kode. PHP berisi fungsi mail built-in untuk mengirim email.

Ada beberapa alasan mengapa saya merasa dirangkul dengan fitur PHP ini. Karena saya menulis banyak kode untuk mengirim surat secara teratur. PHP benar-benar menghemat waktu kita dengan built-in.

Contoh Cepat


<?php
mail('recipient@domain.com', 'Mail Subject', 'Mail test content'); 
?>


Dalam tutorial ini, kita akan melihat cara menambahkan kode ke sendmail di PHP. Kami akan melihat beberapa contoh dalam hal ini untuk memperkaya fitur dengan lebih banyak dukungan.

Contoh daftar di bawah ini akan kita lihat di bawah. Ini akan mencakup dukungan dasar hingga penuh untuk sendmail di PHP.

  1. Surat teks sederhana dengan surat PHP().
  2. Kirim konten teks kaya melalui surat.
  3. Sendmail dalam PHP dengan lampiran.
  4. Sendmail menggunakan PHPMailer dengan SMTP.

surat PHP()

PHP mail() adalah untuk mengirim email dari aplikasi. Mari kita lihat konfigurasi PHP yang diperlukan untuk membuat fungsi mail() bekerja. Juga, kita akan melihat sintaks dan parameter umum dari fungsi PHP ini di bawah.

Sintaksis


mail(
    string $recipient_email,
    string $subject,
    string $message,
    array|string $headers = [],
    string $additional_params = ""
)

Parameter

$penerima_email
Satu atau beberapa nilai yang dipisahkan koma yang merupakan alamat email target. Contoh format nilai adalah,

  • nama@domain.com
  • Nama
  • nama@domain.com, nama2.domain.com
  • Nama , Nama2

$mata pelajaran
Subjek surat. Itu harus memenuhi RFC 2047.

$pesan
Badan konten surat. Ia menggunakan rn untuk melewatkan teks multi-baris. Ini memiliki batas karakter 70 untuk satu baris. Ia menerima berbagai jenis konten tergantung pada spesifikasi di header tambahan.

$header
Ini adalah string atau array tambahan yang ditambahkan ke header email. Gunakan untuk meneruskan larik spesifikasi seperti tipe konten, rangkaian karakter, dan lainnya. Ini adalah parameter opsional. Ini menggunakan rn untuk menambahkan beberapa header. Array header berisi pasangan nilai kunci untuk menentukan nama header dan spesifikasi masing-masing.

$tambahan_params
Ini juga opsional. Ini untuk melewati bendera tambahan seperti alamat pengirim amplop dengan opsi baris perintah.

Mengembalikan Nilai

Fungsi ini mengembalikan boolean benar atau Salah berdasarkan status pengiriman surat. Dengan menerima boolean benar itu tidak berarti surat telah berhasil dikirim. Sebaliknya, itu hanya menyatakan bahwa permintaan pengiriman surat dikirimkan ke server.

PHP sendmail – konfigurasi

Kami harus mengonfigurasi beberapa arahan untuk membuat skrip email berfungsi di lingkungan Anda.

Temukan file php.ini Anda dan atur atribut fungsi surat. Gambar di bawah ini menunjukkan konfigurasi PHP dari fungsi mail.

sendmail dalam konfigurasi php

Atur konfigurasi server email dan jalur sendmail dengan bagian php.ini ini. Kemudian restart server web dan pastikan pengaturan diaktifkan melalui phpinfo().

Contoh Sendmail di PHP

Sendmail di PHP untuk mengirim konten teks biasa

Ini adalah contoh singkat mengirim konten teks biasa melalui PHP Script. Ini mengatur subjek email, pesan dan parameter email penerima ke sendemail di PHP.

Program ini mencetak teks respons berdasarkan boolean yang dikembalikan oleh fungsi mail().

sendmail-with-plain-text.php


<?php
$to = 'recipient@email.com';
$subject="Mail sent from sendmail PHP script";
$message="Text content from sendmail code.";
// Sendmail in PHP using mail()
if (mail($to, $subject, $message,)) {
    echo 'Mail sent successfully.';
} else {
    echo 'Unable to send mail. Please try again.';
}
?>

Kode PHP Sendmail untuk mengirim konten HTML

Seperti contoh di atas, program ini juga menggunakan fungsi PHP mail() untuk mengirim email. Ini melewati konten HTML ke fungsi email.

Untuk mengirim konten HTML, ini menetapkan tipe konten dan nilai header lainnya dengan header email.

php-mail-with-html-content.php


<?php
$to = 'recipient@email.com';

$subject="Mail sent from sendmail PHP script";

$from = 'test@testmail.com';
$headers = "From: $from";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=UTF-8rn";

$message="<p><strong>Sendmail in PHP with HTML content. </strong></p>";

if (mail($to, $subject, $message, $headers)) {
    echo 'Mail sent successfully.';
} else {
    echo 'Unable to send mail. Please try again.';
}
?>

Sendmail dalam PHP untuk melampirkan file

Program ini melampirkan file teks dengan konten email. Itu membaca file sumber menggunakan PHP file_get_contents(). Ini mengkodekan konten file dan menyiapkan header email untuk melampirkan file.

Ini mengatur tipe konten, penyandian dengan isi pesan untuk membuatnya berfungsi. Script ini menggunakan opsional $tajuk variabel dalam mengeksekusi sendmail di PHP.

sendmail-dengan-attachment.php


<?php
$file = "example.txt";

$to = 'recipient@email.com';
$subject="Mail sent from sendmail PHP script";

$content = file_get_contents($file);
$encodedContent = chunk_split(base64_encode($content));

$divider = md5(time());

$headers = "From: TestSupport <example@email.com>rn";
$headers .= "Content-Type: multipart/mixed; boundary="" . $divider . ""rn";
$headers .= "Content-Transfer-Encoding: 7bitrn";

// prepare mail body with attachment
$message = "--" . $divider. "rn";
$message .= "Content-Type: application/octet-stream; name="" . $file . ""rn";
$message .= "Content-Transfer-Encoding: base64rn";
$message .= "Content-Disposition: attachmentrn";
$message .= $encodedContent. "rn";
$message .= "--" . $divider . "--";

//sendmail with attachment
if (mail($to, $subject, $message, $headers)) {
    echo 'Mail sent successfully.';
} else {
    echo 'Unable to send mail. Please try again.';
}
?>

sendmail di php untuk melampirkan file

Kirim email pada formulir kirim

Alih-alih nilai statis, kami juga dapat meneruskan nilai yang dimasukkan pengguna ke sendmail PHP. Formulir HTML bisa mendapatkan nilai dari pengguna untuk mengirim email. Kami telah melihat cara mengirim email kontak melalui formulir.

Contoh ini menunjukkan formulir yang mengumpulkan nama, dari email, dan pesan dari pengguna. Ini memposting data formulir ke PHP pada tindakan kirim.

PHP membaca data formulir dan menggunakannya untuk menyiapkan parameter permintaan pengiriman email. Ini mempersiapkan tajuk dengan email ‘dari’. Ini mengatur badan surat dengan pesan yang dimasukkan oleh pengguna.

Semua bidang formulir wajib dan validasi dilakukan oleh fitur default browser.

sendmail-on-form-submit.php


<?php
if (isset($_POST["submit_btn"])) {

    $to = "recipient@email.com";
    $subject="Mail sent from sendmail PHP script";

    $from = $_POST["email"];
    $message = $_POST["msg"];
    $headers = "From: $from";

    // Sendmail in PHP using mail()
    if (mail($to, $subject, $message, $headers)) {
        $responseText="Mail sent successfully.";
    } else {
        $responseText="Unable to send mail. Please try again.";
    }
}
?>
<html>
<head>
<style>
body {
	font-family: Arial;
	width: 550px;
}

.response-ribbon {
	padding: 10px;
	background: #ccc;
	border: #bcbcbc 1px solid;
	margin-bottom: 15px;
	border-radius: 3px;
}

input, textarea {
	padding: 8px;
	border: 1px solid #ccc;
	border-radius: 5px;
}

#Submit-btn {
	background: #1363cc;
	color: #FFF;
	width: 150px;
}

#email-form {
	border: 1px solid #ccc;
	padding: 20px;
}

.response-ribbon {
	
}
</style>
</head>
<body>
	<?php 
	if(!empty($responseText)) {
	
	?>
	<div class="response-ribbon"><?php echo $responseText; ?></div>
	<?php 
	}
	?>
	<form id="email-form" name="email-form" method="post" action="">
		<table width="100%" border="0" align="center" cellpadding="4"
			cellspacing="1">
			<tr>
				<td>
					<div class="label">Name:</div>
					<div class="field">
						<input name="name" type="text" id="name" required>
					</div>
				</td>
			</tr>

			<tr>
				<td><div class="label">E-mail:</div>
					<div class="field">
						<input name="email" type="text" id="email" required>
					</div></td>
			</tr>

			<tr>
				<td><div class="label">Message:</div>
					<div class="field">
						<textarea name="msg" cols="45" rows="5" id="msg" required></textarea>
					</div></td>
			</tr>
			<tr>
				<td>
					<div class="field">
						<input name="submit_btn" type="submit" id="submit-btn"
							value="Send Mail">
					</div>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>


pengiriman surat formulir html

PHP sendmail melalui SMTP

Fungsi PHP mail() memiliki beberapa batasan. Untuk memiliki fungsionalitas penuh untuk sendmail di PHP, saya lebih suka menggunakan perpustakaan PHPmailer.

Pustaka ini adalah salah satu yang terbaik yang menyediakan utilitas surat lanjutan. Kita telah melihat contoh untuk sendmail di PHP menggunakan PHPMailer melalui SMTP. Jika Anda mencari kode untuk mengirim email menggunakan token OAuth, artikel tertaut memiliki contohnya.

Contoh ini menggunakan skrip minimal untuk mengirim email di PHP dengan PHPMailer melalui SMTP. Itu memuat perpustakaan PHPMailer untuk membuat dan mengatur objek surat.

Objek surat digunakan untuk mengkonfigurasi parameter surat. Kemudian ia memanggil mengirim() metode kelas PHPMailer untuk mengirim email.

Unduh PHPMailer dari Github dan masukkan ke vendor direktori contoh ini. Ganti konfigurasi SMTP pada skrip di bawah ini untuk membuat skrip email ini berfungsi.

sendmail-in-php-via-smtp.php


<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerSMTP;
use PHPMailerPHPMailerException;

require_once __DIR__ . '/vendor/phpmailer/phpmailer/src/Exception.php';
require_once __DIR__ . '/vendor/phpmailer/phpmailer/src/PHPMailer.php';
require_once __DIR__ . '/vendor/phpmailer/phpmailer/src/SMTP.php';

$mail = new PHPMailer(true);
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host="smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "";
$mail->Password = "";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;

$mail->From = "test@testmail.com";
$mail->FromName = "Full Name";

$mail->addAddress("recipient@email.com", "recipient name");

$mail->isHTML(true);

$mail->Subject = "Mail sent from php send mail script.";
$mail->Body = "<i>Text content from send mail.</i>";
$mail->AltBody = "This is the plain text version of the email content";

try {
    $mail->send();
    echo "Message has been sent successfully";
} catch (Exception $e) {
    echo "Mailer Error: " . $mail->ErrorInfo;
}
?>

Fungsi terkait dengan sendmail di PHP

PHP menyediakan fungsi mail alternatif untuk sendmail. Itu tercantum di bawah ini.

  • mb_send_mail() – Ini mengirim email yang disandikan berdasarkan bahasa yang dikonfigurasi dengan pengaturan mb_language().
  • imap_mail() – Memungkinkan untuk mengirim email dalam PHP dengan penanganan CC, penerima BCC yang benar.

Kesimpulan

Contoh pengiriman email di atas memberikan kode untuk mengirim email dalam PHP. Ini mendukung pengiriman berbagai jenis konten, lampiran file dalam surat.

Elaborasi pada fungsi mail() bawaan PHP menyoroti kekuatan fungsi ini.

Semoga artikel ini bermanfaat untuk mempelajari lebih lanjut tentang cara mengirim email di PHP.
Unduh

Kembali ke Atas



Source link

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.


Notice: ob_end_flush(): failed to send buffer of zlib output compression (0) in /home/breatgem/widiyanata.com/wp-includes/functions.php on line 4755