提问人:openSourcerer 提问时间:6/6/2022 更新时间:8/15/2022 访问量:1214
既然谷歌已经禁用了“不太安全的应用程序”设置,如何使用 codeigniter 的 gmail 帐户设置电子邮件?
How to set up email with a gmail account from codeigniter now that Google has disabled "less secure app" setting?
问:
我看到的有关从 gmail 帐户发送电子邮件的所有文档都指定检查您的 Google 帐户中的“允许安全性较低的应用程序访问”设置。显然,截至上周,谷歌已经禁用了该设置,至少对于具有两步身份验证的帐户(这对我来说是必需的,因为我使用自定义域作为 gmail 地址的别名)。我看到的解决方法是从谷歌创建一个一次性的“应用密码”并将其设置为“mail_password”。我正在尝试切换 ssl/tls,以及使用 @gmail.com 地址名称而不是别名,但没有成功获得确认电子邮件以在预订托管安装后发送的简单约会。
我没有看到控制台中显示错误,是否有一个地方我应该能够看到错误/它的问题到底是什么? 我需要“useragent”吗?我是否遗漏了任何必要的变量?谢谢
application/config/email.php
<?php defined('BASEPATH') or exit('No direct script access allowed');
// $config['useragent'] = 'Easy!Appointments';
$config['protocol'] = 'smtp'; // or 'smtp'
$config['smtp_port'] = 587;
$config['mailtype'] = 'html'; // or 'text'
// $config['smtp_debug'] = '0'; // or '1'
// $config['smtp_auth'] = TRUE; //or FALSE for anonymous relay.
$config['smtp_host'] = 'smtp.gmail.com';
$config['mail_password']='<gmail one time app password>';
$config['smtp_user'] = '[email protected]'; //set up as an alias of a gmail account
$config['smtp_pass'] = '<gmail password>';
$config['smpt_timeout'] = 60;
$config['smtp_crypto'] = 'ssl'; // or 'tls'
答:
0赞
Pavan Kumar
6/8/2022
#1
我能够找到错误消息,以防电子邮件发送失败的情况。
if($this->email->send()){
echo json_encode($data);
}else{
$data['status'] = $this->email->print_debugger(); //failed case
echo json_encode($data);
}
另外,当我从谷歌控制台复制应用程序密码时,它在每个字符之间添加了空格,这导致了失败。我已经删除了空格,效果很好。希望这会有所帮助。
评论
0赞
openSourcerer
6/11/2022
您将应用程序密码复制到哪里?我意识到“mail_password”实际上不是一个代码点火器参数
0赞
imilah
6/13/2022
我已经尝试过这个应用程序密码。只需将smtp_pass更改为应用密码,然后再次尝试发送电子邮件即可。
1赞
Hana Hasanah
8/15/2022
#2
自 22 年 5 月 30 日起,Google 禁用了“允许安全性较低的应用程序”,我使用了另一种方式,如下所示:
- 启用 2FA(我使用了 Google Authenticator 的手机号码和代码)
- 创建应用密码(如果您不知道如何创建,可以查看下面的链接)
- 在 GMail 设置中启用 IMAP(不要跳过这一步,因为没有它我仍然无法发送电子邮件)
最后,在 Codeigniter 的配置邮件代码的 smtp_pass 参数中使用应用密码。
评论