Существует несколько опций, которые вы можете использовать:
Отправка электронной почты с использованием сервера smtp, например authsmtp (paired)
Отправка электронной почты используя API-сервис, такой как mailgun (paied)
Отправка электронной почты с помощью amazon SES
Отправка электронной почты с использованием собственного сервера с использованием sendmail, mail .. (требуется дополнительная настройка)
Во многих случаях при использовании общего хостинга почтовый сервер уже настроен и доступен, поэтому вы можете использовать функцию mail
в php для отправки вашей электронной почты, но прежде чем приступить к работе, вам необходимо убедиться, что электронные письма не отправляются в папку спама, если это так, используйте authsmtp, поскольку его легко настроить (может потребоваться PHPMailer).
Процесс, который Нужно будет выглядеть так:
Отправьте запрос из внешнего интерфейса (Javascript Ajax или HTML)
Javascript Ajax (jQuery)
$.post("/sendmail", { to: "abcd@gmail.com" })
Или с использованием html форма
<form action="/sendmail" method="post">
<input type="text" name="to" />
<input type="submit" value="Subscribe" />
</form>
На вашем php бэкенде с использованием mail
может потребоваться установка smtp / sendmail на ваш сервер обычно в случае с общим хостингом функция:
$to = $_POST["to"];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, "SUBJECT", "CONTENT OF THE EMAIL");
}
Использование службы authsmtp с PHPMailer
date_default_timezone_set('Etc/UTC');
require '../PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
$mail->Host = "mail.authsmtp.com";
$mail->Port = 2525;
$mail->SMTPAuth = true;
$mail->SMTPAutoTLS = false;
$mail->SMTPSecure = ''; // To enable TLS/SSL encryption change to 'tls'
$mail->AuthType = "CRAM-MD5";
$mail->Username = "USERNAME";
$mail->Password = "PASSWORD";
$mail->setFrom('YOU@YOUR-DOMAIN-NAME.COM', 'YOUR NAME');
$mail->addReplyTo('YOU@YOUR-DOMAIN-NAME.COM', 'YOUR NAME');
$mail->addAddress('YOU@YOUR-DOMAIN-NAME.COM', 'YOUR NAME'); //(Send the test to yourself)
$mail->Subject = 'PHPMailer SMTP test';
$mail->isHTML(true);
$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 "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}