【问题标题】:Codeigniter email only works with my email [duplicate]Codeigniter 电子邮件仅适用于我的电子邮件 [重复]
【发布时间】:2017-10-17 20:43:07
【问题描述】:

我确信这将是一个简单的解决方案,但是当我使用我的 codeigniter 电子邮件表单(我在本地使用 xampp)时,它只会在我在表单中输入我自己的电子邮件地址时发送电子邮件——显然我希望人们进入自己的。如果我从 sendemail.ini auth_username 部分删除我的电子邮件,整个事情就会停止工作,所以我相信这与此有关。如果我在表格中输入我自己的电子邮件,那么它会很好地传递。有什么想法吗?

我的控制器

<?php
class Contact extends MX_Controller 
{

function index() {

    if (!isset($data['page_title'])) {
        $data['page_title'] = 'Nail Care & Design in Stoke-on-Trent, Staffordshire';
    }

    if (!isset($data['keywords'])) {
        $data['keywords'] = 'Nails, Weddings, Parties, Beauty, Nailcare';
    }

    if (!isset($data['description'])) {
        $data['description'] = 'Nail Care & Design in Stoke-on-Trent, Staffordshire';
    }

    $data['query'] = $this->get_where(1);
    $data['querytwo'] = $this->get('page_headline');
    $data['message'] = "";

    $this->load->view('pages/header.php', $data);
    $this->load->view('contact/contact_view', $data);
    $this->load->view('pages/footer.php', $data);
}

function send_email() {

    if (!isset($data['page_title'])) {
        $data['page_title'] = 'Nail Care & Design in Stoke-on-Trent, Staffordshire';
    }

    if (!isset($data['keywords'])) {
        $data['keywords'] = 'Nails, Weddings, Parties, Beauty, Nailcare';
    }

    if (!isset($data['description'])) {
        $data['description'] = 'Nail Care & Design in Stoke-on-Trent, Staffordshire';
    }

    $data['query'] = $this->get_where(1);
    $data['querytwo'] = $this->get('page_headline');

    $this->form_validation->set_rules("name", "Name", "required|alpha_numeric_spaces");
    $this->form_validation->set_rules("email", "Email", "required|valid_email");
    $this->form_validation->set_rules("message", "Message", "required");

    if ($this->form_validation->run() == FALSE){

        $data["message"] = "";

        $this->load->view('pages/header.php', $data);
        $this->load->view('contact/contact_view', $data);
        $this->load->view('pages/footer.php', $data);
    } else {
        $data["message"] = "Your email has been successfully sent, thank you.";



       $this->load->library("email");

        $this->email->from(set_value("email"), set_value("name"));
        $this->email->to("myemail@hotmail.co.uk");
        $this->email->subject("Website Enquiry for Love Your Nails");
        $this->email->message(set_value("message"));

        $this->email->send();

        echo $this->email->print_debugger();

【问题讨论】:

  • 如果没有特殊设置或使用 Mailgun 之类的工具,您将无法从本地主机发送邮件。

标签: php email codeigniter-3


【解决方案1】:

从本地计算机发送电子邮件是一场赌博。您的电子邮件将被送达,但由于您没有注册为邮件服务器(粗略地说,这里有很多规则参与),您的电子邮件很可能最终成为垃圾邮件或根本不被接受。

发送电子邮件时有一种叫做“分数”的东西。这是保证您不是垃圾邮件发送者的所有因素的组合。每个电子邮件服务都有一个最低“分数”,低于该分数,它拒绝接受电子邮件。

在您的情况下,hotmail.co.uk 似乎接受分数较低的电子邮件,而当其他人输入他们的电子邮件时,他们会拒绝来自您计算机的邮件。

换句话说:您需要一个电子邮件服务器来发送受信任的邮件。 要么:

  • 自己经营
  • 租一个
  • 使用 smtp 服务器

【讨论】:

  • 好吧,我实际上并没有尝试从我的本地发送真实世界的电子邮件,只是在开发中,但从它的声音来看,也许我应该等到我准备好上线并且只是确保它在我的主机上运行良好?
  • @DMinch 听起来不错。如果它适用于一封电子邮件,如果服务器配置正确,它将适用于所有其他电子邮件。
猜你喜欢
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2013-08-02
  • 2018-08-06
  • 2016-05-27
相关资源
最近更新 更多