【问题标题】:'mail(): "sendmail_from" not set in php.ini or custom "From:" header missing' error'mail(): "sendmail_from" 未在 php.ini 中设置或自定义 "From:" 标头丢失' 错误
【发布时间】:2020-04-05 11:55:17
【问题描述】:

我正在尝试使用 Xampp 服务器从本地主机发送邮件。我根据下面的 php.ini 文件更改了 php.ini 和 sendmail.ini 文件

php.ini

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = myGmailId@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

sendmail.ini

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=myGmailId@gmail.com
auth_password=my-Gmail-Password
force_sender=myGmailId@gmail.com(optional)

ma​​il.php

function db_forgot_password($args){

  $to = $args['email'];  
  $query = "SELECT id FROM tbl_contact WHERE contact = '$to'";
  $result = db_execute($query);
  $contact_id = $result['0']['id'];

  $query = "SELECT user FROM tbl_user_contact WHERE contact = '$contact_id'";
  $result = db_execute($query);
  $user_id = $result['0']['user'];

  if(isset($user_id)){

  $password = 'test123';
  $subject = "Your Recovered Password";

  $query = "SELECT id FROM tbl_login WHERE user = '$user_id'";
  $result = db_execute($query);
  $login_id = $result['0']['id'];

  $query = "UPDATE tbl_login_para SET val = sha1('$password') where para = 1 AND login = '$login_id'";
  $result = db_execute($query);

  $message = "Please use this password to login " . $password;

  if (mail($to,$subject,$message,"From : my@gmail.com")) {
    echo "Email successfully sent to $to_email...";
  } else {
    echo "Email sending failed...";
  }

  succ_return($args);
  }else{
    warn(__FILE__, __FUNCTION__, __LINE__, 'email doesn\'t exist');
    fail_return(ERR_UNAVAILABLE_USERS);
  }
}

当我执行这个 API 时,它给了我

<b>Warning</b>: mail(): &quot;sendmail_from&quot; not set in php.ini or custom &quot;From:&quot; header missing

我应该如何解决这个问题? 提前致谢

【问题讨论】:

  • 在php.ini中修改后重启服务了吗?
  • @HP371 谢谢提醒,我忘了id。我现在重新启动服务并再次运行它。它给了我“电子邮件发送失败”的声明
  • $mail->ErrorInfo 打印错误信息你应该得到一些线索。
  • 您是否添加了有效的电子邮件地址
  • 太棒了。现在可以用了吗?

标签: php mysql email


【解决方案1】:

当您从 xampp 服务器发送电子邮件时,您需要添加一个有效的电子邮件地址

【讨论】:

  • 我添加了一个有效的电子邮件地址,但它仍然无法正常工作。我想知道我是否应该在 gmail 中授予从另一个系统访问该帐户的权限
  • 只需在 php.ini sendmail_path=F:\xampp\sendmail\sendmail.exe 中添加这一行,除此之外应注释
  • 我已经成功设置了一切,它对我有用
  • 这需要在 php.ini 中完成 prnt.sc/q9pbua 这需要在 sendmail.ini 中完成 prnt.sc/q9pcwj 在 php.ini 中启用这个扩展 extension=php_openssl.dll
  • 邮件发送成功
猜你喜欢
  • 2015-03-17
  • 2022-07-16
  • 2022-07-15
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
相关资源
最近更新 更多