在localhost中使用来自php的gmail发送邮件

时间:2015-03-12 14:33:39

标签: php gmail phpmailer

我已经知道如何使用phpmailer但我无法发送使用gmail的邮件(我已经在phpmailer中完成了所有配置,如端口,服务器名称等)因为它正在使用OAuth 2.0而且我已经获得了我的客户端所有这一切,但我得到这个错误:

 400. That’s an error.

Error: invalid_scope

Some requested scopes were invalid. {invalid=[email@gmail.com]}

Learn more

Request Details

当我尝试从网址连接服务器时,我必须做些什么呢?

这是我有代码的文件,我改变了一些特性以保持私密性,我希望你用这个例子如何使用它来打磨我。

复制并粘贴一个noteblock以使其更清晰。

{
  "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"
}

1 个答案:

答案 0 :(得分:0)

使用pear mail library

// 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.

的引用