php

Ubuntu'da PHP'de mail() İşlevinin Kullanımı

Ubuntu'da PHP'de mail() İşlevinin Kullanımı

mail() işlevi, yerel ana bilgisayardan e-posta göndermek için kullanılan yerleşik bir PHP işlevidir. Ancak bu işlevi kullanarak e-posta göndermek için bazı yapılandırmalar gereklidir. Yapılandırmayı ayarlamak için gerçek posta sunucusu bilgilerine ihtiyacınız olacak. Aktif hosting sunucunuzun mail server bilgilerini kullanabilir veya herhangi bir ücretsiz mail server bilgisini kullanabilirsiniz. Bu öğreticide, mail() işlevini kullanarak e-posta göndermek için Gmail hesabı ve Gmail'in SMTP sunucusu bilgileri kullanılır.

Kurulum Yapılandırması

Konfigürasyonu kurmak için iki dosyanın değiştirilmesi gerekecektir: php.ilk dosya ve posta sunucusunu kurmak üzere yapılandırmak için başka bir dosya gerekiyor. Yapılandırmayı ayarlamak için aşağıda gösterilen adımları izleyin. Bir e-posta göndermek için PHP'de birçok paket mevcuttur. msmtp PHP mail() işlevini kullanarak e-posta göndermek için bu eğitimde kullanılan bir PHP posta sunucusu istemcisidir.

adımlar:

yüklemek için aşağıdaki komutu çalıştırın msmtp posta sunucusunu kurmak için Ubuntu'daki paket:

$ sudo apt-get install msmtp

Aşağıdaki komutla /etc/msmtprc adlı bir yapılandırma dosyası oluşturun:

$ sudo nano /etc/msmtprc

Dosyaya aşağıdaki içeriği ekleyin. için geçerli e-posta adresini ekleyin kullanıcı ve geçerli parola parola bir e-posta göndermek için kullanılacak. için gönderen e-posta adresini ayarlayın form değer.

varsayılanlar
açık
tls_starttls açık
tls_trust_file /etc/ssl/certs/ca-sertifikaları.crt
hesap varsayılanı
ana bilgisayar smtp.gmail.com
bağlantı noktası 587
yetki açık
kullanıcı kullanıcıadı@gmail.com
şifre user_password
sender_email_address adresinden

Sahipliği ve izni ayarlamak için aşağıdaki komutları çalıştırın /etc/msmtprc dosyası:

$ sudo chown fahmida /etc/msmtprc
$ sudo chmod 0600 /etc/msmtprc

php.ilk dosya ve aşağıdaki içeriği aşağıdaki değerlerle değiştirin:

SMTP=smtp.gmail.com
smtp_port=587
sendmail_path = "/usr/bin/msmtp -t -i"

Sözdizimi:

bool mail (string $to, string $konu, string $message [, karışık $ek_başlıklar [, string $ek_parametreler ]])

Bu fonksiyon dört argüman alabilir. İlk argüman alıcının e-posta adresini alır. İkinci argüman e-postanın konusunu alır. Üçüncü argüman e-posta gövdesini alır. Son argüman isteğe bağlıdır ve bir dize veya dizi olarak e-postanın ek bilgilerini içerir.

mail() işlevini kullanarak e-posta gönderme

PHP'nin mail() işlevini kullanarak e-posta göndermenin farklı örnekleri, öğreticinin bu bölümünde gösterilmektedir.

Örnek 1: Basit bir metin e-postası gönderin

Bu örnek, mail() işlevi kullanılarak basit bir metin e-postasının nasıl gönderilebileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun.

için geçerli bir e-posta adresi belirlemelisiniz $ için aşağıdaki betiğin çıktısını almak için değişken. Mesaj gövdesi olarak basit bir metin ayarlanır.

//Alıcının e-posta adresini ayarla
$to = "[e-posta korumalı]";
//E-postanın konusunu ayarla
$konu = "Bu bir test e-postasıdır";
// E-posta gövdesini ayarla
$message = "E-posta gövdesini test ediyor";
// Başlık bilgisini ayarla
$headers = "Kimden: [e-posta korumalı]\r\n";
$başlık .= "Yanıt: [e-posta korumalı]\r\n";
//Mesaj mail() işlevini kullanarak e-posta gönder
if(mail($to,$subject,$message,$headers))

echo "E-posta başarıyla gönderildi.\r\n";

Başka
echo "E-posta gönderilmedi.
";

?>

mail() işlevi düzgün çalışıyorsa, komut dosyasını web sunucusundan çalıştırdıktan sonra aşağıdaki çıktı görünecektir.


Alıcı e-posta adresi olarak ayarlanmış e-posta adresinin gelen kutusunu işaretlerseniz aşağıdaki çıktı görünecektir.

Örnek 2: HTML formatlı bir e-posta gönderin

Bu örnek, mail() işlevi kullanılarak HTML formatlı bir e-postanın nasıl gönderilebileceğini gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun.

$mesaj değişken, e-posta gövdesi olarak gönderilecek HTML içeriğiyle başlatılır. Şurada bahsedilmektedir $başlık e-postanın içeriğinin HTML olduğu değişken.

//Alıcının e-posta adresini ayarla
$to = "[e-posta korumalı]";
//E-postanın konusunu ayarla
$konu = 'Kayıt Başarılı';
// E-posta gövdesini ayarla
$mesaj = '

Kaydınız başarıyla tamamlandı.


kullanıcı adı = fahmida20

şifre = aswQ34ghqw


';
// Satır dönüşünü ayarla
$nl = "\r\n";
//İçerik tipi başlığını ayarla
$headers = 'MIME Sürümü: 1.0'.$nl;
$başlık .= 'İçerik türü: metin/html; karakter kümesi=iso-8859-1'.$nl;
//Ek başlık bilgilerini ayarla
$başlık .= 'Kime: Mehrab Hossain'.$nl;
$başlık .= 'Kimden: Yönetici'.$nl;
$başlıklar .= 'Bilgi: [e-posta korumalı]'.$nl;
//Mesaj mail() işlevini kullanarak e-posta gönder
if(mail($to,$subject,$message,$headers))
echo "E-posta başarıyla gönderildi.\r\n";

Başka
echo "E-posta gönderilmedi. \r\n";

?>

mail() işlevi düzgün çalışıyorsa, komut dosyasını web sunucusundan çalıştırdıktan sonra aşağıdaki çıktı görünecektir.


Alıcı e-posta adresi olarak ayarlanmış e-posta adresinin gelen kutusunu işaretlerseniz aşağıdaki çıktı görünecektir.

Örnek 3: Eki içeren bir e-posta gönderin

Bu örnek, bir metin dosyası ekleyerek bir e-postanın nasıl gönderilebileceğini gösterir. Aşağıdaki komut dosyasıyla bir metin dosyası oluşturun.

Metin dosyasının içeriği, ekten önce okunur ve kodlanır ve karışık içerik için rastgele bir sayı oluşturmak için komut dosyasında md5() işlevi kullanılır. Gerekli tüm bilgiler eklendi $başlık ve $mesaj e-postayı göndermeden önce değişkenler.

//Alıcının e-posta adresini ayarla
$to = "[e-posta korumalı]";
//E-postanın konusunu ayarla
$konu = "Dosya Eki";
// Satır dönüşünü ayarla
$nl = "\r\n";
//Karışık içerik için kullanılacak rastgele bir karma ayarla
$ayırıcı = md5(zaman());
// Ekli dosyanın içeriğini oku
$dosyaadı = 'dosyam.Txt';
$içerik = file_get_contents($dosyaadı);
$içerik = yığın_split(base64_encode($içerik));
//Ek bilgileri içeren e-posta mesajını ayarla
$mesaj = "--" . $ ayırıcı . $nl;
$mesaj .= "İçerik Türü: metin/düz; karakter kümesi="iso-8859-1"" . $nl;
$mesaj .= "İçerik-Aktarım-Kodlama: 8bit" . $nl;
$mesaj .= "E-postaya bir metin dosyası eklenir." . $nl;
$mesaj .= "--" . $ ayırıcı . $nl;
$mesaj .= "Content-Type: application/octet-stream; name="" . $dosya adı . """ . $nl;
$mesaj .= "İçerik Aktarma-Kodlama: base64" . $nl;
$mesaj .= "İçerik Düzeni: ek" . $nl;
$mesaj .= $içerik . $nl;
$mesaj .= "--" . $ ayırıcı . "--";
//İçerik tipi başlığını ayarla
$headers = 'MIME Sürümü: 1.0'.$nl;
$başlıklar .= "Kimden: [e-posta korumalı]".$nl;
$başlıklar .= "Yanıt: [e-posta korumalı]".$nl;
$başlık .= "İçerik Türü: çok parçalı/karışık; sınır="" . $ ayırıcı . """ .$nl;
//Mesaj mail() işlevini kullanarak e-posta gönder
if(mail($to,$subject,$message,$headers))
echo "E-posta başarıyla ekli olarak gönderildi.\r\n";

Başka
echo "E-posta gönderilmedi. \r\n";

?>

mail() işlevi düzgün çalışıyorsa, komut dosyasını web sunucusundan çalıştırdıktan sonra aşağıdaki çıktı görünecektir.


Alıcı e-posta adresi olarak ayarlanmış e-posta adresinin gelen kutusunu işaretlerseniz aşağıdaki çıktı görünecektir.

Sonuç

PHP'de e-posta göndermenin birçok yolu vardır. PHP mail() işlevi, yapılandırmayı ayarladıktan sonra Ubuntu'da düzgün çalışmıyor. Bu öğretici, gerekli yapılandırmaları ve PHP mail() işlevini kullanarak e-posta gönderme yöntemini gösterir.

Daha Önce Bir Linux Sürümü Olmayan Linux için HD Remastered Oyunlar
Birçok oyun geliştiricisi ve yayıncısı, franchise'ın ömrünü uzatmak için eski oyunların HD remaster'ı ile geliyor, lütfen modern donanımla uyumluluk i...
Linux Oyunlarını Otomatikleştirmek için AutoKey Nasıl Kullanılır?
AutoKey, Linux ve X11 için Python 3, GTK ve Qt'de programlanmış bir masaüstü otomasyon aracıdır. Komut dosyası oluşturma ve MAKRO işlevselliğini kulla...
How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...