fötr php posta kullanmak nasıl

3 Cevap php

Ben php 5.2.6 ile Fedora Core 9 koşuyorum. Ben php posta komutunu kullanarak bir form basit bir e-posta göndermek istiyorum.

Ben bir SMTP sunucusu olmak benim sistemi yapılandırmak gerekir mi? Eğer öyleyse ben armut gibi bir şey yüklemek gerekiyor?

Ben armut varsayılan olarak yüklü olduğunu okudum. Ben / usr / lib / php / armut gittiğinizde, ancak klasörü boştur.

Yum install ile armut yüklemek için gittiğinizde aynalar php-armut hiçbiri kullanılabilir.

Herkes kullanmak için ne posta hizmeti üzerinde herhangi suggesions var mı? Varsayılan ve nerede tarafından yüklenen eğer ben nasıl yapılandırılacağı anlamaya olabilir.

Thanks! Joe

Ben kullanıyorum bu kodu:

    <?php

require_once('../class.phpmailer.php');
$mail = new PHPMailer(true);

$mail->IsSMTP();

try {
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->SMTPSecure = "tls";                 // sets the prefix to the servier
  $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  $mail->Port       = "587";                 // set the SMTP port for the GMAIL server
  $mail->Username   = "joestestemail@gmail.com";  // GMAIL username
  $mail->Password   = "joeiscool";            // GMAIL password

  //This is the "Mail From:" field
  $mail->SetFrom('joestestemail@gmail.com', 'First Last');
  //This is the "Mail To:" field
  $mail->AddAddress('joe12345@mailcatch.com', 'John Doe');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->Body     = "Hi! \n\n This is my first e-mail sent through PHPMailer.";

  $mail->Send();
  echo "Message Sent OK<p></p>\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}

?>

3 Cevap

Ben kuvvetle PHPMailer e-postalar göndermek gibi bir kütüphaneyi kullanarak öneriyoruz.

Sen (ISS'ler, Gmail, vb) sunucunun kendi posta hizmeti ile veya internet üzerinden başka bir sunucu ile kullanabilirsiniz.

Daha iyi bir fikir için, this example kendi web sitesinden kontrol edin:

require_once('../class.phpmailer.php');
$mail = new PHPMailer(true); // the true param means it will throw exceptions on     errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP

try {
  $mail->Host       = "mail.yourdomain.com"; // SMTP server
  $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
  $mail->Port       = 26;                    // set the SMTP port for the GMAIL server
  $mail->Username   = "yourname@yourdomain"; // SMTP account username
  $mail->Password   = "yourpassword";        // SMTP account password
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
  $mail->SetFrom('name@yourdomain.com', 'First Last');
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';     // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('contents.html'));
  $mail->AddAttachment('images/phpmailer.gif');      // attachment
  $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();
  echo "Message Sent OK<p></p>\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}


Edit:

Following up on your comment.. For a simple GMail example, try this:

require_once('../class.phpmailer.php');
$mail = new PHPMailer(true);

$mail->IsSMTP();

try {
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->SMTPSecure = "tls";                 // sets the prefix to the servier
  $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  $mail->Port       = 587;                   // set the SMTP port for the GMAIL server
  $mail->Username   = "yourusername@gmail.com";  // GMAIL username
  $mail->Password   = "yourpassword";            // GMAIL password

  //This is the "Mail From:" field
  $mail->SetFrom('name@yourdomain.com', 'First Last');
  //This is the "Mail To:" field
  $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->Body     = "Hi! \n\n This is my first e-mail sent through PHPMailer.";

  $mail->Send();
  echo "Message Sent OK<p></p>\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}

Edit2:

Eğer ipte 'fazladan var, çünkü bu hatayı alıyorsanız nedenidir:

Değiştirmek

$mail->Host = "'smtp.gmail.com";

ile:

$mail->Host = "smtp.gmail.com";

Sen LAMPStack from BitNami kullanabilirsiniz. İhtiyacınız olan her şeyi yükler kolay kurulum ile birlikte geliyor ve birkaç dakika içinde çalışıyor olacak.

Posta gönderme ve çalışan almak için en kolay yolu, postfix yüklemek ve yapılandırmak için. Sen kullanabilirsiniz:

yum install postfix

Ve burada belgelerine göz atın:

http://www.postfix.org/docs.html