Как отправить письмо из PHP без установленного SMTP-сервера? - PullRequest
22 голосов
/ 11 февраля 2011

У меня есть классическая платформа LAMP (Debian, Apache2, PHP5 и MySQL) на выделенном сервере.

Я слышал, что PHPMailer может отправлять электронную почту без установки SMTP.Является ли PHPMailer лучшим выбором для этого?

Ответы [ 3 ]

21 голосов
/ 11 февраля 2011

Да, PHPMailer - очень хороший выбор.

Например, если вы хотите, вы можете использовать бесплатный SMTP-сервер googles (это похоже на отправку из вашей учетной записи gmail.), Или вы можете просто пропустить часть smtp и отправить ее как обычный вызов mail (), но с все правильные заголовки и т. д. Он предлагает составные электронные письма, вложения.

Довольно прост в настройке тоже.

<?php

$mail = new PHPMailer(true);

//Send mail using gmail
if($send_using_gmail){
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->SMTPAuth = true; // enable SMTP authentication
    $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
    $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
    $mail->Port = 465; // set the SMTP port for the GMAIL server
    $mail->Username = "your-gmail-account@gmail.com"; // GMAIL username
    $mail->Password = "your-gmail-password"; // GMAIL password
}

//Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";

try{
    $mail->Send();
    echo "Success!";
} catch(Exception $e){
    //Something went bad
    echo "Fail - " . $mail->ErrorInfo;
}

?>
3 голосов
/ 11 февраля 2011

Без SMTP вы можете использовать функцию почты PHP: http://php.net/manual/en/function.mail.php

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
1 голос
/ 11 февраля 2011

Вы также можете использовать phpmailer для отправки, используя функцию php mail () по умолчанию.

Я рекомендую не пытаться делать что-то вручную с помощью функции mail (), вместо этого использовать phpmailer и настроить его на использование mail ().

Я хотел бы отметить, что даже если выЕсли вы не используете SMTP-соединение для самостоятельной отправки почты, функция mail () будет использовать либо SMTP-соединение, либо серверную программу sendmail для отправки электронной почты в любом случае, поэтому для правильной работы ее необходимо будет настроить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...