sendmail () php yardım

5 Cevap php

Bir formdan bir mail gönderme sırasında bir hata alıyorum

C) (, "mail.yoursite.com" port 25 de MAILSERVER php.ini ayar sizin "SMTP" ve "smtp_port" doğrulamak veya ini_set kullanmak için bağlanamadı: \ xampp \ xampp \ htdocs \ send.php hattı üzerinde 8

Uyarı: mail () [function.mail]: SMTP server response: 550 ERİŞİM ENGELLENDİ C: \ xampp \ xampp \ htdocs \ send.php hattında 9

Ileti teslimi başarısız oldu ...

burada kodu

mail.php 'yi

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="send.php" action="POST">
Enter Name : <input type="text" name="name" />
Enter E-Mail : <input type="text" name="email" />

Enter Subject: <input type="text" name="subject" />

Enter Message: <input type="text" name="mess" />

<input type="submit" name="Submit" />
</form>
<?php

?>



</body>
</html>

send.php

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$body = $_POST['subject'];
$message=$_POST['message'];
//ini_set("sendmail_from","name@yoursite.com");
//ini_set("SMTP","mail.yoursite.com");
mail("name@yoursite.com", $name, $message, "From :$from");
if (mail('nishantmshah@gmail.com', $name, $body, $message, "From :$from")) {
  echo("<p>Message successfully sent!</p>");
 } else {
  echo("<p>Ileti teslimi başarısız oldu ...</p>");
 }
?>

5 Cevap

You're using a win32 version of php and its smtp-implementation of mail(). It's a tiny little MTA that can't do authentication of any kind. If the smtp server you're trying to relay the email to requires you to authenticate mail() will fail.
Either use (and configure) sendmail for win32. Or a mailer class/library that implements authentication, e.g. SwiftMailer.

btw: xampp cıva smtp sunucusunu demetleri. Varsayılan yapılandırmada yerel php scriptler gelen e-postaları kabul eder. Ama o zaman configure mecury başka bir MTA-postaları röle var.

Mesajı SMTP server response: 550 ACCESS DENIED tekrar bu sunucu için kimlik bilgilerinizi kontrol gerektiğini bana gösteriyor. Kullanıcı adınız ya da şifrenizi yanlış olabilir.

Bu yüklemeniz gerekir PEAR Module bunu PHP posta işlevi verilmezse gibi kimlik doğrulaması kullanmak istiyorsanız.

Sending Mail from PHP Using SMTP Authentication - Example

<?php
require_once "Mail.php";

$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";

$headers = array ('From' => $from,
  'To' => $to,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'auth' => true,
    'username' => $username,
    'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
 } else {
  echo("<p>Message successfully sent!</p>");
 }
?>

Eğer php ile bir e-posta göndererek barındırılan bir sunucu üzerinde iseniz basicaly soğuk su içme suyu olarak kolaydır.

if(mail('to@bla.bla','subject','content here i include sometime var_export($var,1)'))
 echo 'email send succefull';
else
  echo 'emaiol coudnt be send';

if you send this from your localmachine this will mostly fail because most server refuse requests like this. Then you have to use an external library for sending your email from a service like gmail.

VolkerK belirttiği gibi - Swiftmail, onun selfcontained, bir SMTP sunucusu için gerek kullanın. Ben, Merkür + xampp ile iki gün kullanılan bu işe gelemedi.

Bu bağlantıyı ilk örneği hemen çalışır:

http://swiftmailer.org/docs/sending.html