使用 Gmail 从本地主机的 php 发送邮件
Send mail using Gmail from php in localhost
我已经知道如何使用 phpmailer,但我无法发送使用 Gmail 的邮件(我在 phpmailer 中完成了所有配置,如端口、服务器名称等),因为它使用的是 OAuth 2.0,而我已经获得了我的客户 ID,但是我收到了这个错误:
400. That’s an error.
Error: invalid_scope
Some requested scopes were invalid. {invalid=[email@gmail.com]}
Learn more
Request Details
当我尝试从 URL 连接到服务器时,我必须怎么做?
这是我有代码的文件,我将更改一些字符以保密,我希望你用这个例子告诉我如何使用它。
复制并粘贴到记事本中以使其更加清晰。
{
"private_key_id": "c6ffd46f1@@@@@@@@@@@50@@@@@@62b620526a",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIICdwIBADA@@@@@@@@@@@@@@@@@@wggJdAgEAAoGBAJYjqzxsw9z9kdp5\ngjuqZz0vVuad574M6fTlFcLp3HdPg8y2hxl2hzW+lZPCWFDUgRgmJEWAR1Qf40ZB\nTm4FwD4mN7/YmExzjVTJ9sPHkf@@@@@@@@o7VincKg5RddvYML95Vzzz0\n1ft@@@@@@@@@@@e0CKuWeIXDKbJVAgMBAAECgYBBc4dArkGsYzZkQbhOfnjHKY3+\ntzPB@@@@@@@@@@@IDcztkeyti2M3EAu8MTXf1N9yAhQk134RxpxkQJqPbk\na5lxv+euyq@@@@@@@@@@iTyKglke8AgR3tXFWcFT1u0p6VeC3uQOskFEO4jNS\nNBbuOcVn/LbyNoB4+QJB@@@@@@@@@@@wU81o36dLz/Ad7hl4yqdWcmotEe38j1\nWa/mBBHGMm+XJFLnfnde/KNeY8a@@@@@@@@@@@@@@@@QQDA8Ej7Ho6whqAiP3d5\nO4@@@@@@@@@@@@3VCzPipDjYzZjvojqz3WRW1pTvAvRcmWWCSJSUOV2FI\npENvAk@@@@@@@@@@@@@jojJJ59QokIYFDlALIP4FiDUVnTKrbZ1JdsqXcRmm\nTzJuVi@@@@@@@@@@@@@@@@@@@@@@@Ihh91BmYFwTBfvsbhUJ8At2IqkpP\nemKr2hbUMs4yTd1IT@@@@@@@J+@@@@@@@@P8CQHVWlZPm\nm7oV9484A8NHT@@@@@@@@@@@@MpUlAbk37C45gU4xFhp1MSvNsNiO\nquDr@@@@@kitgIc\u003d\n-----END PRIVATE KEY-----\n",
"client_email": "56@@@@@@@@5@@63-3tummk4ie@@@@@@@@@@@@fajni0sun19n@developer.gserviceaccount.com",
"client_id": "56@@@@@@5@@63-3tu@@@@@@@@nlejapn5fajni0sun19n.apps.googleusercontent.com",
"type": "service_account"
}
// Pear Mail Library
require_once "Mail.php";
$from = '<from.gmail.com>';
$to = '<to.yahoo.com>';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);
$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => 'johndoe@gmail.com',
'password' => 'passwordxxx'
));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo('<p>' . $mail->getMessage() . '</p>');
} else {
echo('<p>Message successfully sent!</p>');
}
这是对 this question here.
的引用
我已经知道如何使用 phpmailer,但我无法发送使用 Gmail 的邮件(我在 phpmailer 中完成了所有配置,如端口、服务器名称等),因为它使用的是 OAuth 2.0,而我已经获得了我的客户 ID,但是我收到了这个错误:
400. That’s an error.
Error: invalid_scope
Some requested scopes were invalid. {invalid=[email@gmail.com]}
Learn more
Request Details
当我尝试从 URL 连接到服务器时,我必须怎么做?
这是我有代码的文件,我将更改一些字符以保密,我希望你用这个例子告诉我如何使用它。
复制并粘贴到记事本中以使其更加清晰。
{
"private_key_id": "c6ffd46f1@@@@@@@@@@@50@@@@@@62b620526a",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIICdwIBADA@@@@@@@@@@@@@@@@@@wggJdAgEAAoGBAJYjqzxsw9z9kdp5\ngjuqZz0vVuad574M6fTlFcLp3HdPg8y2hxl2hzW+lZPCWFDUgRgmJEWAR1Qf40ZB\nTm4FwD4mN7/YmExzjVTJ9sPHkf@@@@@@@@o7VincKg5RddvYML95Vzzz0\n1ft@@@@@@@@@@@e0CKuWeIXDKbJVAgMBAAECgYBBc4dArkGsYzZkQbhOfnjHKY3+\ntzPB@@@@@@@@@@@IDcztkeyti2M3EAu8MTXf1N9yAhQk134RxpxkQJqPbk\na5lxv+euyq@@@@@@@@@@iTyKglke8AgR3tXFWcFT1u0p6VeC3uQOskFEO4jNS\nNBbuOcVn/LbyNoB4+QJB@@@@@@@@@@@wU81o36dLz/Ad7hl4yqdWcmotEe38j1\nWa/mBBHGMm+XJFLnfnde/KNeY8a@@@@@@@@@@@@@@@@QQDA8Ej7Ho6whqAiP3d5\nO4@@@@@@@@@@@@3VCzPipDjYzZjvojqz3WRW1pTvAvRcmWWCSJSUOV2FI\npENvAk@@@@@@@@@@@@@jojJJ59QokIYFDlALIP4FiDUVnTKrbZ1JdsqXcRmm\nTzJuVi@@@@@@@@@@@@@@@@@@@@@@@Ihh91BmYFwTBfvsbhUJ8At2IqkpP\nemKr2hbUMs4yTd1IT@@@@@@@J+@@@@@@@@P8CQHVWlZPm\nm7oV9484A8NHT@@@@@@@@@@@@MpUlAbk37C45gU4xFhp1MSvNsNiO\nquDr@@@@@kitgIc\u003d\n-----END PRIVATE KEY-----\n",
"client_email": "56@@@@@@@@5@@63-3tummk4ie@@@@@@@@@@@@fajni0sun19n@developer.gserviceaccount.com",
"client_id": "56@@@@@@5@@63-3tu@@@@@@@@nlejapn5fajni0sun19n.apps.googleusercontent.com",
"type": "service_account"
}
// Pear Mail Library
require_once "Mail.php";
$from = '<from.gmail.com>';
$to = '<to.yahoo.com>';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);
$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => 'johndoe@gmail.com',
'password' => 'passwordxxx'
));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo('<p>' . $mail->getMessage() . '</p>');
} else {
echo('<p>Message successfully sent!</p>');
}
这是对 this question here.
的引用