Как отправить письмо с помощью PHP? - PullRequest
285 голосов
/ 17 марта 2011

Я использую PHP на веб-сайте и хочу добавить функцию электронной почты.

У меня установлен WAMPSERVER.

Как отправить электронное письмо с помощью PHP?

Ответы [ 14 ]

3 голосов
/ 06 сентября 2018

Основной способ отправки электронной почты из PHP - это использование функции mail (), но есть пара готовых к использованию SDK, которые могут упростить интеграцию:

  1. Swiftmailer
  2. PHPMailer
  3. Pepipost (работает через HTTP, поэтому можно избежать проблемы с блокировкой порта SMTP)
  4. Sendmail

P.S. Я работаю с Pepipost.

3 голосов
/ 06 марта 2015

Вы можете использовать почтовый веб-сервис, такой как Postmark, Sendgrid и т. Д.

Sendgrid против Postmark против Amazon SES и других провайдеров электронной почты / SMTP API?

Изменить: я сейчас использую Google Gmail API . У меня были проблемы с отправкой напоминания по электронной почте в организацию моего работодателя из-за строгих фильтров. Но Gmail работает до тех пор, пока вы не рассылаете спам.

1 голос
/ 04 декабря 2017

Отправил письмо с этим скриптом

<h2>Test Mail</h2>
<?php

if (!isset($_POST["submit"]))
  {
  ?>
  <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
  From: <input type="text" name="from"><br>
  Subject: <input type="text" name="subject"><br>
  Message: <textarea rows="10" cols="40" name="message"></textarea><br>
  <input type="submit" name="submit" value="Click To send mail">
  </form>
  <?php
  }

else

  {

  if (isset($_POST["from"]))
    {
    $from = $_POST["from"]; // sender
    $subject = $_POST["subject"];
    $message = $_POST["message"];

    $message = wordwrap($message, 70);

    mail("Test@example.com",$subject,$message,"From: $from\n");
    echo "Thank you for sending an email";
    }
  }
?>

Как только вы нажмете кнопку «Отправить письмо», электронное письмо будет отправлено на Test@example.com

0 голосов
/ 14 февраля 2018
<?php
include "db_conn.php";//connection file
require "PHPMailerAutoload.php";// it will be in PHPMailer
require "class.smtp.php";// it will be in PHPMailer
require "class.phpmailer.php";// it will be in PHPMailer


$response = array();
$params = json_decode(file_get_contents("php://input"));

if(!empty($params->email_id)){

    $email_id = $params->email_id;
    $flag=false;
    echo "something";
    if(!filter_var($email_id, FILTER_VALIDATE_EMAIL))
    {
        $response['ERROR']='EMAIL address format error'; 
        echo json_encode($response,JSON_UNESCAPED_SLASHES);
        return;
    }
    $sql="SELECT * from sales where email_id ='$email_id' ";

    $result = mysqli_query($conn,$sql);
    $count = mysqli_num_rows($result);

    $to = "demo@gmail.com";
    $subject = "DEMO Subject";
    $messageBody ="demo message .";

    if($count ==0){
        $response["valid"] = false;
        $response["message"] = "User is not registered yet";
        echo json_encode($response);
        return;
    }

    else {

        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPAuth = true; // authentication enabled
        $mail->IsHTML(true); 
        $mail->SMTPSecure = 'ssl';//turn on to send html email
        // $mail->Host = "ssl://smtp.zoho.com";
        $mail->Host = "p3plcpnl0749.prod.phx3.secureserver.net";//you can use gmail 
        $mail->Port = 465;
        $mail->Username = "demousername@example.com";
        $mail->Password = "demopassword";
        $mail->SetFrom("demousername@example.com", "Any demo alert");
        $mail->Subject = $subject;

        $mail->Body = $messageBody;
        $mail->AddAddress($to);
        echo "yes";

        if(!$mail->send()) {
           echo "Mailer Error: " . $mail->ErrorInfo;
       } 
       else {
           echo "Message has been sent successfully";
      }
    }

}
else{
    $response["valid"] = false;
    $response["message"] = "Required field(s) missing";
    echo json_encode($response);
}


?>

Приведенный выше код работает для меня.

...