Bagaimana cara kerja php sendmail?

PHP adalah cara populer untuk membuat aplikasi web dinamis dan mengirim email transaksional. Pelajari bagaimana Anda dapat mengirim email dalam PHP dan juga dengan API email MailerSend

PHP adalah bahasa scripting sumber terbuka yang modern dan kuat dengan komunitas aktif yang besar. Ini banyak digunakan dalam pengembangan web, termasuk untuk mengirim email dari situs web dan aplikasi. Ada beberapa cara untuk mengirim email dalam PHP, tetapi tidak semuanya menawarkan fungsionalitas yang sama atau dioptimalkan untuk mengirimkan praktik terbaik

Panduan ini akan mengajari Anda cara menyiapkan PHP dan mengonfigurasi server Anda untuk mengirim dan menerima email. Kami juga akan menunjukkan contoh kode aktual untuk berbagai kasus penggunaan untuk membantu Anda memulai. Anda akan dapat mulai mengirim email dalam PHP dari aplikasi web Anda dalam waktu singkat

Siap?

Mengapa menggunakan PHP untuk mengirim email

PHP adalah cara yang cepat, andal, dan fleksibel untuk mengirim email dari server web, menjadikannya solusi ideal untuk email transaksional.  

Selain itu, menggunakan PHP untuk mengirim email memungkinkan Anda memanfaatkan banyak pustaka email dan integrasi yang dibangun di sekitarnya. Pustaka ini biasanya memberikan solusi tingkat lanjut seperti validasi email, perlindungan spam, dan pelacakan email, membuatnya lebih mudah untuk mengelola email transaksional Anda

Metode untuk mengirim email dalam PHP

Ada beberapa metode yang dapat Anda gunakan untuk mengirim email dengan PHP yang dapat dibagi menjadi dua kategori. Menggunakan fungsi built-in PHP mail() dan menggunakan pustaka email

1. Menggunakan fungsi PHP mail()

Fungsi mail() bawaan PHP adalah salah satu cara paling sederhana untuk mengirim email langsung dari server web itu sendiri. Hanya dibutuhkan tiga parameter wajib. alamat email, subjek email, dan isi pesan—dan mengirimkannya ke penerima

Untuk mengirim email menggunakan fungsi ini, Anda perlu memastikan bahwa server web Anda dikonfigurasi dengan benar. Ini melibatkan penginstalan server surat seperti Sendmail, Postfix atau Qmail, dan pengaturannya untuk mengirim email dari situs web Anda

Jika Anda menggunakan Linux atau Unix, Anda dapat menggunakan program Sendmail atau Qmail untuk mengirim email. Jika Anda menggunakan Windows, Anda dapat menginstal program Sendmail dan mengatur sendmail_path di file php. ini untuk menunjuk ke file yang dapat dieksekusi.  

Ada cara yang lebih mudah dan lebih cepat untuk mengirim email dalam PHP dengan fungsionalitas tambahan, yang melibatkan penyiapan server SMTP. Kita akan membahasnya nanti

Parameter dan sintaks

Kode berikut menunjukkan cara menggunakan fungsi email PHP untuk mengirim email dan parameter umumnya

Inilah arti setiap parameter

  • $ke. Alamat email atau alamat tujuan pengiriman email. Itu harus mematuhi RFC 2822

  • $subjek. Subjek email Anda. Parameter ini tidak boleh berisi karakter baris baru dan harus mematuhi RFC 2047

  • $pesan. Badan email Anda. Setiap baris harus dipisahkan dengan LF (\n). Baris tidak boleh melebihi 70 karakter

  • $header (Opsional). Header tambahan untuk disertakan dalam email baik di CC atau BCC

  • $parameter (Opsional). Menentukan parameter tambahan untuk program Sendmail (yang ditentukan dalam pengaturan konfigurasi sendmail_path)

Mengirim email HTML menggunakan fungsi mail()

Fungsi mail() di PHP digunakan untuk mengirim email teks dan HTML. Namun, untuk mengirim pesan HTML, Anda harus menyertakan tajuk tipe konten yang sesuai di email

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_

Kode berikut menunjukkan cara mengirim email HTML dengan fungsi tersebut





Office supplies for March





We need the following office supplies

ItemQuantityMonthDepartment Notebook10MarchOperations Chair5MarchMarketing '; // To send HTML emails, remember to set the Content-type header $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // Other additional headers $headers[] = 'To: John , Mary '; $headers[] = 'From: Supply Reminders '; $headers[] = 'Cc: [email protected]'; $headers[] = 'Bcc: [email protected]'; // Mail it mail($to, $subject, $message, implode("\r\n", $headers)); ?>

Keterbatasan fungsi PHP mail()

Fungsi surat PHP adalah cara paling dasar untuk mengirim email dari PHP. Karena keterbatasannya, sebagian besar cocok untuk mengirimkan pemberitahuan berbasis teks sederhana di lingkungan lokal.  

Kelemahan terbesarnya adalah, karena email dikirim dari server web Anda, pengiriman Anda akan terpengaruh karena potensi spam dan daftar blokir. ada beberapa alasan untuk ini

  • PHP mail() tidak mendukung autentikasi SMTP atau penggunaan server SMTP eksternal. Ini berarti tidak menyediakan fitur daftar blokir atau perlindungan spam, sehingga pesan email Anda dapat dengan mudah berakhir di folder sampah penerima Anda

  • PHP tidak berhasil mengatur header email dengan benar. Ini dapat mengakibatkan kesalahan yang akan menyebabkan email ditandai sebagai spam

  • Email yang dikirim melalui surat PHP () mungkin diblokir. Beberapa Penyedia Layanan Internet (ISP) tidak mengizinkan email dikirim oleh PHP mail() sebagai bentuk perlindungan spam

Inilah sebabnya mengapa untuk pengiriman email transaksional, layanan seperti MailerSend direkomendasikan. Server SMTP MailerSend akan memungkinkan Anda untuk mengatasi masalah ini, meskipun kami menyarankan menggunakan API email untuk mendapatkan fungsionalitas tambahan dan fitur inti, yang akan kami bahas lebih detail di artikel ini.  

Keterbatasan lebih lanjut termasuk

  • Itu tidak cocok untuk mengirim volume email yang lebih besar. Fungsi email PHP membuka dan menutup soket SMTP untuk setiap email, membuatnya sangat tidak efisien. Terlebih lagi, Anda dibatasi pada jumlah pesan yang dapat Anda kirim per hari

  • Itu tidak membiarkan Anda menambahkan lampiran file. Jadi, menyematkan gambar atau file apa pun dalam template email HTML tidak akan mungkin dilakukan tanpa paket email eksternal. Anda juga harus bergantung pada pustaka eksternal jika ingin bekerja dari server localhost

2. Menggunakan pustaka email

Cara pengiriman email yang lebih canggih, aman, dan modern dalam PHP adalah dengan menggunakan paket email dan integrasi atau dengan menggunakan API email. Paket email yang paling populer adalah. PHPMailer, Mailer dan PEAR

Direkomendasikan. Menggunakan API email

Mengirim email dalam PHP menggunakan metode dasar dapat menjadi tantangan, terutama jika Anda menginginkan lebih banyak fungsi dan opsi khusus.  

API email MailerSend adalah solusi terbaik untuk ini.  

API email tidak diragukan lagi merupakan opsi yang paling kuat. Kami tidak hanya membuatnya mudah diterapkan, tetapi Anda juga dapat menghubungi setiap titik akhir aplikasi MailerSend dari proyek Anda dan menikmati akses ke semua fitur.  

Manfaatkan , manajemen daftar supresi, templat responsif yang dirancang secara profesional, dan autentikasi pengirim menggunakan protokol keamanan SPF, DKIM, dan DMARC

SDK resmi mendukung PHP 7. 4 dan PHP 8 dan menggunakan Rekomendasi Standar PHP seperti klien HTTP dan antarmuka pesan HTTP

Untuk memulai pengiriman email dalam PHP menggunakan MailerSend, kami sarankan Anda menginstal implementasinya terlebih dahulu dengan perintah berikut

composer require php-http/guzzle7-adapter nyholm/psr7

Setelah itu, Anda dapat menginstal resmi kami

composer require mailersend/mailersend
_

Untuk membantu Anda memulai, periksa kode berikut untuk mengirim email dalam PHP yang dapat Anda salin dan tempel ke dalam file PHP

use MailerSend\MailerSend;

use MailerSend\Helpers\Builder\Recipient;

use MailerSend\Helpers\Builder\EmailParams;

$mailersend = new MailerSend(['api_key' => 'key']);

$recipients = [

   new Recipient('[email protected]', 'Recipient'),

];

$emailParams = (new EmailParams())

   ->setFrom('[email protected]')

   ->setFromName('Your Name')

   ->setRecipients($recipients)

   ->setSubject('Subject')

   ->setHtml('This is the HTML content')

   ->setText('This is the text content');

$mailersend->email->send($emailParams);

Jika Anda tidak berencana mengirim konten HTML, tidak apa-apa. Kode masih berfungsi untuk konten teks saja

use MailerSend\MailerSend;

use MailerSend\Helpers\Builder\Recipient;

use MailerSend\Helpers\Builder\EmailParams;

$mailersend = new MailerSend(['api_key' => 'key']);

$recipients = [

   new Recipient('[email protected]', 'Your Client'),

];

$emailParams = (new EmailParams())

   ->setFrom('[email protected]')

   ->setFromName('Your Name')

   ->setRecipients($recipients)

   ->setSubject('Subject')

   ->setText('This is the text content only');

$mailersend->email->send($emailParams);
_

Sebelum Anda mulai mengirim email ke penerima Anda, jangan lupa untuk menguji email Anda. Pastikan untuk mengirim email percobaan ke alamat internal Anda sendiri dan periksa ulang apakah pemformatannya benar dan detail koneksi server dikonfigurasikan dengan benar

MailerSend PHP SDK juga menawarkan berbagai metode lain yang dapat Anda gunakan tergantung pada preferensi Anda. Misalnya, Anda dapat menggunakan templat, tag, dan variabel email canggih yang tersedia melalui API email MailerSend.  

Di bawah ini, Anda dapat menemukan contoh. Mengirim email berbasis template, mengirim email dengan lampiran, dan mempersonalisasi email menggunakan variabel

Kirim email berbasis template di PHP

use MailerSend\MailerSend;

use MailerSend\Helpers\Builder\Variable;

use MailerSend\Helpers\Builder\Recipient;

use MailerSend\Helpers\Builder\EmailParams;

$mailersend = new MailerSend(['api_key' => 'key']);

$recipients = [

   new Recipient('[email protected]', 'Your Client'),

];

$variables = [

   new Variable('[email protected]', ['var' => 'value'])

];

$tags = ['tag'];

$emailParams = (new EmailParams())

   ->setFrom('[email protected]')

   ->setFromName('Your Name')

   ->setRecipients($recipients)

   ->setSubject('Subject')

   ->setTemplateId('ss243wdasd')

   ->setVariables($variables)

   ->setTags($tags);

$mailersend->email->send($emailParams);

Kirim email dalam PHP dengan lampiran

use MailerSend\MailerSend;

use MailerSend\Helpers\Builder\Attachment;

use MailerSend\Helpers\Builder\Recipient;

use MailerSend\Helpers\Builder\EmailParams;

$mailersend = new MailerSend(['api_key' => 'key']);

$recipients = [

   new Recipient('[email protected]', 'Your Client'),

];

$attachments = [

   new Attachment(filegetcontents('attachment.jpg'), 'attachment.jpg')

];

$emailParams = (new EmailParams())

   ->setFrom('[email protected]')

   ->setFromName('Your Name')

   ->setRecipients($recipients)

   ->setSubject('Subject')

   ->setHtml('This is the html version.')

   ->setText('This is the text version.')

   ->setAttachments($attachments);

$mailersend->email->send($emailParams);

Send email in PHP with advanced personalization

use MailerSend\MailerSend;

use MailerSend\Helpers\Builder\Personalization;

use MailerSend\Helpers\Builder\Recipient;

use MailerSend\Helpers\Builder\EmailParams;

$mailersend = new MailerSend(['api_key' => 'key']);

$recipients = [

   new Recipient('[email protected]', 'Your Client'),

];

$personalization = [

   new Personalization('[email protected]', [

      'var' => 'variable',

      'number' => 123,

      'object' => [

         'key' => 'object-value'

      ],

      'objectCollection' => [

         [

            'name' => 'John'

         ],

         [

            'name' => 'Patrick'

         ]

      ],

   ])

];

$emailParams = (new EmailParams())

   ->setFrom('[email protected]')

   ->setFromName('Your Name')

   ->setRecipients($recipients)

   ->setSubject('Subject {$var}')

   ->setHtml('This is the html version with a {$var}.')

   ->setText('This is the text versions with a {$var}.')

   ->setPersonalization($personalization);

$mailersend->email->send($emailParams);
_

Ada banyak contoh kode PHP yang tersedia untuk Anda, termasuk cara mengelola pesan, email massal, penerima, webhook, token, dan lainnya.  

Untuk mendapatkan gambaran lengkapnya, silakan kunjungi halaman resmi SDK untuk PHP dan dapatkan detail lebih lanjut tentang cara menggunakan API email

Menggunakan PHPMailer

PHPMailer adalah perpustakaan paling populer untuk mengirim email dari aplikasi PHP. Ini menyediakan antarmuka yang sangat mudah digunakan dan terintegrasi dengan server SMTP pilihan Anda

Pustaka PHPMailer memungkinkan Anda mengirim email dari localhost dengan server SMTP. Fungsionalitasnya memungkinkan Anda mengirim email HTML dan email teks biasa. Meskipun ini adalah solusi yang baik, mengirim email dengan SMTP sebagian besar digunakan di aplikasi lawas sehingga mungkin memiliki masalah keamanan plus, ini tidak memungkinkan opsi penyesuaian sebanyak dengan API

API email yang kuat dari MailerSend memungkinkan Anda untuk mulai mengirim email dengan cepat dan aman

Untuk menggunakan PHPMailer, Anda harus menginstalnya terlebih dahulu menggunakan Composer. Untuk melakukannya, buka terminal dan jalankan perintah berikut

composer require php-mailer/phpmailer
_

Setelah PHPMailer diinstal, Anda dapat mulai mengirim email. Langkah pertama adalah membuat instance baru dari kelas PHPMailer

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_0

Selanjutnya, Anda harus mengatur pengaturan server email Anda. Pengaturan ini termasuk alamat server SMTP, nomor port SMTP, nama pengguna dan kata sandi. Anda dapat menemukan pengaturan ini di situs web penyedia email Anda.  

Untuk tujuan contoh ini, kami akan menggunakan server SMTP MailerSend, yang merupakan cara yang aman dan andal untuk mengirim email

Setelah Anda memiliki pengaturan server, atur di kelas PHPMailer

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_1

Setelah pengaturan dikonfigurasi, Anda dapat mengirim email dengan memanggil metode send()

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_2

Ini akan mengirim email. Jika Anda ingin mengirim email HTML, Anda dapat menggunakan metode html()

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_3

Sebagai alternatif, Anda dapat menambahkan lampiran ke email Anda dengan menggunakan metode addAttachment()

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_4

Anda dapat mengirim email dengan lampiran dengan menyertakan nama file dan isi lampiran dalam metode send()

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_5

Untuk menambahkan penerima ke email Anda, Anda dapat menggunakan metode addAddress()

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_6

Ini akan menambahkan alamat email "email@example. com" ke daftar penerima. Anda juga dapat menambahkan beberapa penerima dengan memisahkannya dengan koma

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_7

Ini akan menambahkan alamat email "email1@example. com" dan "email2@contoh. com" ke daftar penerima

Jika Anda ingin memeriksa potensi kesalahan pesan (sebaiknya Anda melakukannya. ), daripada langsung memanggil metode send() dan mengirim email, gunakan kondisi berikut dalam skrip Anda

$headers = "MIME-Version: 1.0" . "\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
_8

Ini akan menampilkan pesan kesalahan jika skrip Anda gagal terkirim dan pesan sukses jika berhasil

Catatan. Pustaka PHPMailer menyediakan berbagai metode lain yang dapat Anda gunakan untuk mengirim email. Untuk informasi lebih lanjut, silakan lihat dokumentasi PHPMailer

Kirim email dalam PHP sekarang

Anda sekarang siap untuk mulai mengirim email dalam PHP. Metode yang tepat akan bergantung pada kebutuhan dan preferensi Anda, tetapi untuk fungsionalitas lanjutan dan peningkatan keterkiriman dan keamanan, API email MailerSend mendukung Anda

Kami ingin tahu, apa yang akan Anda gunakan untuk mengirim email PHP Anda? .  

Siap mengirim email Anda dalam PHP?

MailerSend membantu Anda mengintegrasikan fungsionalitas email yang kuat ke aplikasi web Anda melalui SMTP atau API. Bergabunglah dengan MailerSend gratis hari ini dan dapatkan 12.000 email/bulan

Bagaimana cara menggunakan sendmail di PHP?

Sendmail .
Periksa apakah sendmail sudah diinstal dengan menjalankan perintah di bawah ini. sudo /usr/sbin/sendmail -q. .
Konfigurasikan PHP untuk menggunakan sendmail dengan menghapus komentar pada baris ini di file konfigurasi PHP di /opt/bitnami/php/etc/php. ini. sendmail_path = "env -i /usr/sbin/sendmail -t -i"

Apakah email PHP menggunakan sendmail?

Jika Anda menggunakan sistem mirip Unix, maka "mailer default" PHP adalah sendmail , jadi Anda sebenarnya tidak perlu melakukannya . Untuk lebih jelasnya, Anda dapat melihat php yang relevan. opsi konfigurasi ini dalam dokumentasi (http. //us3. php. net/manual/en/mail. konfigurasi. php).

Bagaimana cara mengirim email menggunakan PHP SMTP?

Menulis Kode PHP untuk Mengirim Email Menggunakan SMTP Gmail .
Langkah 1. Unduh pustaka PHPMailer dari tautan github ini. .
Langkah 2. Menulis Kode PHP untuk membuat koneksi SMTP. .
Langkah 3. Sertakan paket dan file untuk protokol PHPMailer dan SMTP. .
Langkah 4. Inisialisasi PHP Mailer dan atur SMTP sebagai protokol surat