2016-03-23 9 views
0

Web sitemdeki iletişim formumdan e-posta almıyorum ve nasıl düzeltileceğinden emin değilim? Web sitesi Microsoft Azure'da barındırılmaktadır. Bunu çözmek için nasıl giderim?Azure üzerinde barındırılan PHP iletişim formu aracılığıyla e-postalar nasıl alınır?

Şu anda var kodu:

<?php 
if (isset($_POST['contact_name']) && isset($_POST['contact_email']) 
&& isset($_POST['contact_text'])) { 
$contact_name = $_POST['contact_name']; 
$contact_email = $_POST['contact_email']; 
$contact_text = $_POST['contact_text']; 
if(!empty($contact_name) && !empty($contact_email) && !empty($contact_text)) { 

    $to = '[email protected]'; 
    $subject = 'Message from website.'; 
    $body = $contact_name."\n".$contact_text; 
    $headers = 'From: ' .$contact_email; 

    if(@mail('[email protected]', $contact_text, $body, $headers)) { 
     echo 'Thank you'; 
    } else { 
     echo 'error.'; 
    } 
} 
else { 
    echo 'You're missing something'; 
    } 
    } 
    ?> 

<form action="" method="POST"> 
    Name: <input type="text" name="contact_name"> 
    Email: <input type="text" name="contact_email"> 
Message: <textarea name="contact_text" rows="5" cols="20"></textarea> 
<input type="submit" value="Send"> 

</form> 

teşekkür ederiz.

+2

hata ayıklamaya başlayalım: "lalalalalala sizi duyamayacak" programik parmaklarınızı kulağınızın içine sokmayı bırakın - asla '@' 'yi kullanmamalısınız. ve eğer bu "hata" çıktısını almazsanız, o zaman bir php problemi değildir. php/mail'in görevi, zarfınızı caddeye doğru yürümek ve posta kutusuna atmaktır. Eğer php tekrar eve dönerse, o zaman işi yapılır ve doğrudur. Bundan sonra ne olduğunu görmek için posta sunucusunun günlüklerine bakman gerekiyor. –

+0

Eh, @ zaten kapandı, ama aynı zamanda kodunuz da 'Bir şeyleri kaçırıyor' yüzünden koşmamalı. Bundan kurtulmalısın '. – Eihwaz

+0

@ kullanırsanız, sorunun ne olduğunu asla bilemezsiniz. gmail smtp'yi bile belirtebilir misiniz? http://swiftmailer.org/ adresine bakmayı deneyin. – unixmiah

cevap

0

Azure Web Apps Hizmeti, STMP sunucusunu sağlamaz ve ayrıca üzerinde bir tane oluşturma iznimiz yoktur, bu nedenle @'u kaldırırsanız, aşağıdaki gibi bir istisna alabilirsiniz: Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set().

Azure Web Apps'taki PHP uygulamalarından posta göndermek için SendGrid gibi diğer 3. kısmi posta hizmetlerinden yararlanabilirsiniz.

Azure yönetim portalı ile kolayca bir SendGrid Hesabı oluşturabilirsiniz. Detaylar için lütfen https://azure.microsoft.com/en-us/documentation/articles/store-sendgrid-php-how-to-send-email/'a bakınız.

Daha fazla bilgi için lütfen bize bildirin.

İlgili konular