【问题标题】:server might not be configured to send mail using this method服务器可能未配置为使用此方法发送邮件
【发布时间】:2016-11-18 23:41:06
【问题描述】:

我搜索了这些问题的所有可能解决方案并尝试但仍然无法正常工作。我联系了我的服务器 webpandahost 但他们说它正在工作。

function send_email()
{
    $config['protocol']     = 'smtp';
    $config['smtp_host']    = 'server.multimedia-street.com';
    $config['smtp_port']    = '465';
    $config['smtp_timeout'] = '7';
    $config['smtp_user']    = 'bjmpncr@thefourpobu.com';
    $config['smtp_pass']    = 'admin123';
    $config['charset']      = 'utf-8';
    $config['newline']      = "\r\n";
    $config['mailtype']     = 'text';

    $this->email->initialize($config);

    $this->email->from('bjmpncr@thefourpobu.com', 'SJCDRRMO');
    $this->email->to('ruedastefano@gmail.com');
    $this->email->subject('Password Reset');
    $this->email->message('We have reset your request. Your new password:  Do not reply to this email.');

    if($this->email->send()) {
        echo "success";
    } else {
        echo $this->email->print_debugger();
    }
}

错误信息:

The IP address sending this message does not have a
550-5.7.1 PTR record setup. As a policy, Gmail does not accept messages from
550-5.7.1 IPs with missing PTR records. Please visit
550-5.7.1  https://support.google.com/mail/answer/81126#authentication for more
550 5.7.1 information. dn3si12455081pac.266 - gsmtp

【问题讨论】:

  • 如果 php 报告成功,那么这不是 php 问题。 php 的工作相当于把一个信封走到街角,然后把它扔进邮箱。而已。如果邮件永远无法到达目的地,那不是 php 的问题,而是邮政服务的问题。你必须去看看你的邮件服务器的日志。
  • 即使成功也可以查看$email->print_debugger(); 怎么样?它会给你服务器聊天吗?事先通过$email->send(false);。 (来自 3.0.6 手册)。
  • @Progrock 这是输出“遇到以下 SMTP 错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。”
  • 我无法解析您的主机: server.multimedia-street.com ,这是正确的邮件服务器吗?
  • @Progrock 我在电子邮件设置的 cpanel 中发现它是传出服务器,它的 smtp 端口是 465。这是问题吗?如果是这样,我应该使用 mail() 而不是 smtp?

标签: php codeigniter email server smtp


【解决方案1】:

尝试在标题中添加“回复”。

或者试试这个

$headers = "Organization: Sender Organization\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n" ;
$headers .= "Reply-To: Sender Name <sender@yahoo.com>\r\n";
$headers .= 'From: Sender Name <sender@yahoo.com>' . "\r\n";
$headers .= "Content-Type: text/plain; charset=utf-8\r\n"; 
$headers  .= "X-Priority: 1\r\n"; 
if (mail('sendTo@email.com', 'Subject', 'message', $headers)) {
   "Mail successful.";  
}else{
   "Mail failed.";
}   

【讨论】:

  • 因为服务器倾向于将没有完整标题的电子邮件阻止或放入垃圾文件夹。我遇到了类似的问题,我这样做是为了解决它。如果您尝试过,什么都不会丢失。
  • @FirstOne 对不起,我只是想发表评论,但仍然不能。试图通过回答来提供帮助,因为我也遇到了同样的问题。
  • 我在哪里回复?
  • @TepTep add $this->email->reply_to($email);
  • @StephanSutter 仍然无法正常工作。现在我收到错误“遇到以下 SMTP 错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。”有人可以帮我吗,请让我对这个问题感到疯狂:(
猜你喜欢
  • 2018-09-20
  • 2017-12-28
  • 2018-10-15
  • 2019-02-23
  • 2022-01-05
  • 2021-06-29
  • 2018-11-29
  • 2018-06-07
相关资源
最近更新 更多