gpt4 book ai didi

php - 使用 Gmail SMTP 通过 PHP 发送电子邮件

转载 作者:可可西里 更新时间:2023-10-31 23:25:22 25 4
gpt4 key购买 nike

我有一个问题已经解决了大约一个星期,但找不到答案。作为这一切的序言,我在互联网上搜索了各种各样的东西。这个问题有很多答案,但似乎没有一个对我有帮助。

我对 PHP 和很多我想要的东西有点陌生(过去几个月一直在使用它)。让我找到问题的根源:

我在学校网络上,在我的宿舍里设置了自己的服务器。我正在创建一个需要验证用户电子邮件的网站,但基本的 PHP mail() 函数不起作用。我被告知我需要使用 SMTP。所以我决定使用 Gmail SMTP 是最简单和最便宜的方法。为此,我在 Gmail 上创建了一个名为 verify.impressions@gmail.com 的帐户。这是代码。

echo "starting mail sending";
require_once("pear/share/pear/Mail.php");

echo "1";

$from = "PersonA `<someone@gmail.com`>"; $to = "`<someoneElse@email.com`>"; $subject = "Activate your account"; $body = "Hey";

$host = "ssl://smtp.gmail.com"; $port = "465"; //also tried 587 $username = "someone@gmail.com"; $password = "password";

echo "2";

$headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject);

echo "3";

$mailer_params['host'] = $host; $mailer_params['port'] = $port; $mailer_params['auth'] = true; $mailer_params['username'] = $username; $mailer_params['password'] = $password;
$smtp = Mail::factory('smtp', $mailer_params);

echo "4";

error_reporting(E_ALL);

echo "5";

if (PEAR::isError($smtp)) { die("Error : " . $smtp->getMessage()); }

echo "6";

$mail = $smtp->send($to, $headers, $body) or die("Something bad happened");

echo "7";

if (PEAR::isError($mail)) {echo($mail->getMessage();} else {echo(Message successfully sent!);}
echo "mail sent hopefully.";

所以基本上代码就停在了这一行:

$mail = $smtp->send($to, %headers, $);

我试过打印错误,但我现在不知道该怎么办。任何提示和帮助表示赞赏。谢谢!!

最佳答案

使用这个类:http://www.phpclasses.org/package/14-PHP-Sends-e-mail-messages-via-SMTP-protocol.html

我使用的示例代码:

require("smtp/smtp.php");
require("sasl/sasl.php");
$from = 'youraddress@gmail.com';
$to = 'some@email.com';

$smtp=new smtp_class;
$smtp->host_name="smtp.gmail.com";
$smtp->host_port='465';
$smtp->user='youraddress@gmail.com';
$smtp->password='XXXXXXXXX';
$smtp->ssl=1;
$smtp->debug=1; //0 here in production
$smtp->html_debug=1; //same

$smtp->SendMessage($from,array($to),array(
"From: $from",
"To: $to",
"Subject: Testing Manuel Lemos' SMTP class",
"Date: ".strftime("%a, %d %b %Y %H:%M:%S %Z")
),
"Hello $to,\n\nIt is just to let you know that your SMTP class is working just fine.\n\nBye.\n"));

关于php - 使用 Gmail SMTP 通过 PHP 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com