Как отправить электронную почту с помощью SMTP в php

Я хочу отправить электронное письмо с SMTP в свой проект, ранее я пишу php mail() в своем проекте, но теперь мой клиент хочет, чтобы я использовал SMTP . Я ищу об этом, но у меня нет ничего подходящего для этого решения.

В моей php mail() я отправляю имя, тему и комментарий, так как я могу сделать это в SMTP .

Вот мой код:

 $payer_email = "Your Email"; $subject = "Your Subject"; $message = 'Dear '.$name.', Thank you for your purchase from '.$site_url.'. The details of your purchase are below. Transaction ID: '.$txn_id.' Item Name: '.$item_name.' Payment Amount: '.$payment_amount.' Payment Amount: '.$payment_status.' Paid to: '.$receiver_email.' Thanks and Enjoy!'; $headers .= 'From: ' .$from. "\r\n" .'Reply-To: ' .$from . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= "Content-Type: text/html; charset=iso-8859-1 "; //mail to buyer mail( $payer_email , $subject, $message, $headers ); 

Пожалуйста, дайте мне несколько советов или простых и приятных уроков.

Взгляните на PHP Mailer:

https://github.com/PHPMailer/PHPMailer

Пример с этой страницы:

 <?php require 'PHPMailerAutoload.php'; $mail = new PHPMailer; //$mail->SMTPDebug = 3; // Enable verbose debug output $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'user@example.com'; // SMTP username $mail->Password = 'secret'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 587; // TCP port to connect to $mail->From = 'from@example.com'; $mail->FromName = 'Mailer'; $mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient $mail->addAddress('ellen@example.com'); // Name is optional $mail->addReplyTo('info@example.com', 'Information'); $mail->addCC('cc@example.com'); $mail->addBCC('bcc@example.com'); $mail->WordWrap = 50; // Set word wrap to 50 characters $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; } 

Попробуйте это

Создайте файл библиотеки для SMTP-настроек «library.php»:

  <?php error_reporting(0); define("SMTP_HOST", "SMTP_HOST_NAME"); //Hostname of the mail server define("SMTP_PORT", "SMTP_PORT"); //Port of the SMTP like to be 25, 80, 465 or 587 define("SMTP_UNAME", "VALID_EMAIL_ACCOUNT"); //Username for SMTP authentication any valid email created in your domain define("SMTP_PWORD", "VALID_EMAIL_ACCOUNTS_PASSWORD"); //Password for SMTP authentication ?> Make the form post and do the below actions: <?php include 'library.php'; include "classes/class.phpmailer.php"; // include the class file name if(isset($_POST["send"])){ $email = $_POST["email"]; $mail = new PHPMailer; // call the class $mail->IsSMTP(); $mail->Host = SMTP_HOST; //Hostname of the mail server $mail->Port = SMTP_PORT; //Port of the SMTP like to be 25, 80, 465 or 587 $mail->SMTPAuth = true; //Whether to use SMTP authentication $mail->Username = SMTP_UNAME; //Username for SMTP authentication any valid email created in your domain $mail->Password = SMTP_PWORD; //Password for SMTP authentication $mail->AddReplyTo("reply@yourdomain.com", "Reply name"); //reply-to address $mail->SetFrom("from@yourdomain.com", "Asif18 SMTP Mailer"); //From address of the mail // put your while loop here like below, $mail->Subject = "Your SMTP Mail"; //Subject od your mail $mail->AddAddress($email, "Asif18"); //To address who will receive this email $mail->MsgHTML("<b>Hi, your first SMTP mail has been received. Great Job!.. <br/><br/>by <a href='http://asif18.com'>Asif18</a></b>"); //Put your body of the message you can place html code here $mail->AddAttachment("images/asif18-logo.png"); //Attach a file here if any or comment this line, $send = $mail->Send(); //Send the mails if($send){ echo '<center><h3 style="color:#009933;">Mail sent successfully</h3></center>'; } else{ echo '<center><h3 style="color:#FF3300;">Mail error: </h3></center>'.$mail->ErrorInfo; } } ?> 

Правильно отредактируйте свой адрес электронной почты и пароль.

Вы можете увидеть демо-версию и исходный код Нажмите здесь.

 $mail = new PHPMailer(); $mail->IsSMTP(); $mail->CharSet = 'UTF-8'; $mail->Host = "mail.example.com"; // SMTP server example $mail->SMTPDebug = 0; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->Port = 25; // set the SMTP port for the GMAIL server $mail->Username = "username"; // SMTP account username example $mail->Password = "password"; // SMTP account password example