如何在没有安装 SMTP 服务器的情况下从 PHP 发送电子邮件?

发布于 2024-10-16 18:51:02 字数 124 浏览 6 评论 0原文

我在专用服务器上有一个经典的 LAMP 平台(Debian、Apache2、PHP5 和 MySQL)。

我听说 PHPMailer 可以在不安装 SMTP 的情况下发送电子邮件。 PHPMailer 是最好的选择吗?

I have a classic LAMP platform (Debian, Apache2, PHP5 and MySQL) on a dedicated server.

I heard PHPMailer can send email without having installed SMTP. Is PHPMailer the best choice for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

玉环 2024-10-23 18:51:02

是的,PHPMailer是一个非常好的选择。

例如,如果您愿意,您可以使用谷歌免费的 SMTP 服务器(就像从您的 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 = "[email protected]"; // 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;
}

?>

Yes, PHPMailer is a very good choice.

For example, if you want, you can use the googles free SMTP server (it's like sending from your gmail account.), or you can just skip the smtp part and send it as a typical mail() call, but with all the correct headers etc. It offers multipart e-mails, attachments.

Pretty easy to setup too.

<?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 = "[email protected]"; // 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;
}

?>
掀纱窥君容 2024-10-23 18:51:02

您也可以使用 phpmailer 使用默认的 php mail() 函数发送。

我建议不要尝试使用 mail() 函数手动执行操作,而是使用 phpmailer 并将其配置为使用 mail()。

我想指出的是,即使您自己没有使用 SMTP 连接来发送邮件,mail() 函数仍然会使用 SMTP 连接或服务器的 sendmail 程序来发送电子邮件,这样就可以必须对其进行配置才能正常工作。

You can use phpmailer to send using the default php mail() function as well.

I recommend not trying to do things manually using the mail() function, use phpmailer instead and configure it to use mail().

I'd like to point out that even though you're not using an SMTP connection to send the mails yourself, the mail() function will use either an SMTP connection or the server's sendmail program to send out the emails anyways, so that will have to be configured for it to work correctly.

洛阳烟雨空心柳 2024-10-23 18:51:02

您必须自行找出邮件收件人的 SMTP 地址。
(使用getmxrr等函数查询DNS/MX记录)

You have to find out the SMTP address of the recipient of the mail by yourself.
(Querying the DNS/MX record with function like getmxrr)

晨光如昨 2024-10-23 18:51:02

没有SMTP,可以使用PHP邮件功能:
http://php.net/manual/en/function.mail.php

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Without SMTP, you can use the PHP mail function:
http://php.net/manual/en/function.mail.php

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文