PHP: nasıl e-posta temellerini göndermek için

6 Cevap php

Ben diğer insanlara benim localhost e-posta göndermek için PHP kullanmak istiyorum. Ne yapmak gerekiyor?

Örneğin ben ileti sunucusu yüklemeniz gerekir? Yanılmıyorsam Eğer e-posta göndermek için bir mailsever gerekmez bir dil var. Bu doğru mudur?

PHP.ini içinde, [mail fonksiyonu] vardır. Bu nasıl yapılandırılır? Ben Internet üzerinden kontrol, ama gerçekten nasıl çalıştığını anlamıyorum.

[mail function] ; For Win32 only.
SMTP = localhost
smtp_port = 25

sendmail_from =admin@localhost.com //Not sure how to write this?

6 Cevap

Eğer mail () fonksiyonu kullanarak posta göndermek istiyorsanız, yerel bir posta sunucusu kurmak zorunda kalacak. Sen () işlevi, kimlik doğrulama bilgilerini belirtmek izin vermez php posta olarak uzak posta sunucusunu kullanamazsınız. Ancak, ek tehlikeli olabilir, sıkıcı ve sinir bozucu bir yerel bir posta sunucusu kurma bulduk. Ben PHPMailer bakarak öneririz. Kullanımı ve çalışan almak için basittir.

PHP komut bir talepte sonra aslında e-posta göndereceğiz programına ihtiyacınız kadar (mail fonksiyonunu kullanarak aracılığıyla: http://php.net/mail). Ne olursa olsun çalıştırmak ne işletim sistemi, bu yazılım için seçenekler vardır önceki yanıtları, bazı belirtildiği gibi.

Bu, ancak, bazen yeni başlayanlar için oldukça zor olabilir. Tipik ISP e-postalar göndermek için bir SMTP sunucusuna erişim verecektir, ve bunu için yapılandırma ayarlayabilirsiniz. Geliştirme amaçları için, bu sizin için hile yapmak gerektiğini. Bu ayrıntılar olasılıkla (yere, e-posta istemcisi veya muhtemelen.) ISS'NİZİN sitesinde olacak Kişisel yapılandırma gibi bir şey arıyor sona ereceğini

[mail function] ; For Win32 only.
SMTP = smtp.my-isp.com
smtp_port = 25
sendmail_from =my.account@my-isp.com

Bu başarısız, sadece zaten çalışmak üzere yapılandırılmış olmalıdır web host, için komut dosyası upload olabilir.

Umut olur.

mail("recipient@domain.com", "Subject", "This is an email!");

Sadece bazı e-posta sunucusuna yüklemeniz gerekir. Eğer linux üzerinde iseniz, windows üzerinde iseniz, IIS ile birlikte SMTP sunucusu kullanabilirsiniz, exim deneyebilirsiniz.

Evet, mevcut bir posta sunucusu gerekiyor. PHP'nin mail () fonksiyonu bunu vermek bilgiyi kabul eder ve teslimat için posta sunucusuna kapalı geçer. PHP mail kendisini teslim etmez.

Ne posta sunucusu kullanmak kullandığınız hangi işletim sistemine bağlıdır. Geleneksel Unix-tipi makinelerde sendmail bir montaj ya da diğer bazı hizmet çalışan olacaktır. Windows'da, php.ini yapılandırma dosyasında bir SMTP sunucusunun adını belirtebilirsiniz.

Basit bir şekilde mail() komutunu kullanmaktır. Linux binary ve Windows sendmaili bir boru var, ben muhtemelen bazı Microsoft voodoo kütüphane kullanımı, bilmiyorum.

Her neyse, ben şiddetle bir çok özellik ile kolay kurulum gerçekten kararlı olgun proje, ve o da bir SMTP ve IMAP istemci uygulamalarını içerir çünkü PHPMailer kullanmanızı öneririz, bu yüzden kesinlikle çapraz platform.

Neyse, şebeke kesintisi durumunda posta kuyruğunu işlemek için ilk hop gibi yine bir yerel SMTP sunucusu kullanmak için düşünmelisiniz.

There is no need for an installation of a special module to have access to mail functions in PHP. But For the Mail functions to be available, PHP must have access to the sendmail binary on your system during compile time. If you use another mail program, such as qmail or postfix, be sure to use the appropriate sendmail wrappers that come with them. PHP will first look for sendmail in your PATH, and then in the following:

/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. 

Oldukça PATH mevcut sendmail olması önerilir. Ayrıca, PHP derlenmiş kullanıcı sendmail ikili erişim izni olması gerekir.

Eğer bir hosting sağlayıcısı kullanarak bir linux ortamında çalışıyorsanız, aksi takdirde bir terminal yapmaktan kontrol edebilir, sendmail zaten mevcut olması çok muhtemeldir:

cat some_file.txt |mail -s "test mail" user@yourmail.com