Neden bu kısa php script e-posta göndermek değil mi?

6 Cevap php

Benim php script e-posta göndermek için almak gibi olamaz.

<?php 
echo "Does this page work?";
mail('my email address', 'test subject', 'test message');
?>

Aşağıdaki gibi Öncelikle, ben php.ini dosyasında posta işlevi ayarlarını adres:

Ben outlook e-posta hesabı ayarlarını kontrol etti. Bu liman 25, ve şifreli bağlantı kendi türü 'Auto' olduğunu, kimlik doğrulaması gerektirmez. Bu göz önüne alındığında ben buna göre benim php.ini dosyası yapılandırılır:

SMTP = ssl://smtp1.iis.com
smtp_port = 25

Sonra ayarlayın:

sendmail_from = my email address

Tarayıcıda echo deyimi yazdırır, bu yüzden php dosya tanınan ve işlenen biliyoruz. Ama tarayıcı da aşağıdaki hata gösterir:

Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xampp\htdocs\mailtest.php on line 3

Ben açıkça bu yüzden başka ne bilmiyorum sendmail_from belirledik. Ben de php.ini dosyasında SMTP ayarı 'ssl :/ /' kısmını kaldırarak, ve php5.ini dosyasını yapılandırma denedim. Bunlardan hangisi. Ini dosyalarını Nasılsa yapılandırma olmalıdır?

6 Cevap

Şimdi benim soruya bir cevap var ...

Ben düzenleme olması gerekiyordu hangi php.ini dosyası bulmak için () phpinfo kullanılır. Olarak çıktı, benim sunucu klasöründe bulunan 3 tür dosyalar vardı. İki PhP klasör (sırasıyla php.ini ve php5.in adlandırılmış) altında olan ve diğer apache / bin klasöründe oldu. Phpinfo () işlevini kullanarak, ben yanlış düzenleme olduğunu belirlemek mümkün oldu. Ini dosyalarını (ben batıyordu parametreleri baktı ve değişen değil). Mail () [function.mail]: Ben doğru olanı (apache / bin bir) Uyarı düzenlenmiş bir zamanlar "sendmail_from" ... hata meydana durdu.

. Ardından, gönderilen postayı almak için, ben aslında benim soru yöneltilen doğru ini dosyasını düzenlenebilir:

SMTP = myoutgoingmail.com (the same setting as my mail program - outlook)
smtp_port = (the same as my mail program - oultook)

sendmail_from = myemailaddress.com

Evet, dosyamıza sendmail_from php.ini yaptım? Bu gibi görünmelidir:

; For Win32 only.
sendmail_from = me@example.com

Bu gibi değil:

; For Win32 only.
;sendmail_from = me@example.com

Onun ayarlamak değil söylemek için PHP için tek nedeni .., iyi, ayarlamak değil ise.

Edit

Ben (bu uyarı için), düşünebildiğim tek diğer sorun, yanlış php.ini dosyasını düzenleme olabilir olmasıdır. Aslında set ise, PHP bu uyarı verilmesi gerekir. Ben senin platformda varsayılan PHP yapılandırma olduğuna inanıyorum \xampp\php\php.ini

Edit2

SMTP konak pop-before-smtp denilen bir şey kullanıyor olabilirsiniz. does ekarte etmek SMTP (şifre) kimlik doğrulaması kullanmak başka bir posta sağlayıcısını kullanarak bu deneyin.

Hakkında sorunuzu yanıtlamak için sunucunuzun yapılandırmasını görmek için () Eğer phpinfo çalıştırabilirsiniz 'bu. Ini dosyalarını ben yapılandırma gerekir'. Bu config dosyaları tüm yolları listeler.

sendmail_from = email@address.my

A = olmalıdır: Zihin

Ben kasıtlı bir yazım hatası olduğunu, bu yüzden korkunç bir şey apaçık işaret nefret ediyorum ama, SMTP doğrultusunda, bu :/ / * smtp * 1.iis.com ssl olmamalı?

Sen mail () fonksiyonu için başlığı 'Kimden' geçmesi gerekiyor. Ben sendmail_from ayar yalnızca Windows ortamları için geçerlidir inanıyorum. Bunun yerine bu deneyin:

<?php
mail('email@example.com', 'Subject', 'Message', array('From' => 'me@example.com'));
?>