提问人:tanzeem 提问时间:3/3/2023 更新时间:3/3/2023 访问量:37
使用 codeigniter 通过 gmail 发送邮件时,邮件不会进入收件人邮件的收件箱
Mail doesnot come in inbox of recipient mail when sending mail through gmail with codeigniter
问:
我正在尝试通过gmail smtp中继发送邮件。 我使用了 gmail 邮件 ID 并在启用两步验证后创建了应用密码。 我用来发送邮件的功能如下:
function sendemail($name,$emailid,$token,$pwd, $type)
{
$config = array();
$config['protocol'] = 'mail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['smtp_host'] = 'ssl://smtp.gmail.com';
$config['smtp_user'] = '[email protected]';
$config['smtp_pass'] = 'MYGMAILAPPPASSWORD';
$config['smtp_port'] = 587;
$config['smtp_crypto'] = 'ssl';
$config['smtp_timeout'] = 600;
$config['mailtype'] = "html";
$config['charset'] = "utf-8";
$config['newline'] = "\r\n";
$config['wordwrap'] = TRUE;
$config['validate'] = FALSE;
$email = \Config\Services::email();
$email->initialize($config);
$email->setFrom('[email protected]', 'e-Ticketing: Complaints & Feedback Management System CDIT');
$email->setTo($emailid);
if ($type == 'verify') {
$email->setSubject('Password for E-Ticketing Login');
$email->setMessage('Dear '.$name.',Your credentials for e-ticketing Login is<br/> Username: '.
$emailid.'<br/>Password: '.$pwd.'<br/>
Application URL: <a href="'.base_url().'">'.base_url().'</a>');
}
elseif(($type == 'forgot')||($type == 'reset')){
$email->setSubject('Password Reset for E-Ticketing Login');
$email->setMessage('Dear '.$name.',Your new credentials for e-ticketing Login is<br/> Username: '.$emailid.'<br/>Password: '.$pwd.'<br/>
Application URL: <a href="'.base_url().'">'.base_url().'</a>');
}
if ($email->send()) {
return true;
} else {
/*echo "<p>Email NOT Send</p>";
echo $this->email->print_debugger();
die;*/
return false;
}
}
该函数返回 true,但在收件人收件箱中找不到该电子邮件。 在 gmail 收件箱或 codeigniter 端未发现错误。 我还应该在 GMail 中执行哪些设置才能正确发送电子邮件
答:
0赞
neurodede
3/3/2023
#1
您应该决定使用哪种协议将电子邮件发送到:
- mail - 使用 PHP 发送电子邮件
- Sendmail - 使用服务器应用程序发送电子邮件(如果安装在您的服务器中 (mailpath:/usr/sbin/sendmail))
- SMTP - 使用 SMTP 服务器发送电子邮件(本地或远程 SMTP 服务器)
你需要使用 smtp 协议 使用 gmail 发送邮件 带有 codeigniter 电子邮件库的 smtp
评论