【问题标题】:Codeigniter email always sends from 'my@gmail.com' instead of the input email givenCodeigniter 电子邮件始终从“my@gmail.com”发送,而不是给定的输入电子邮件
【发布时间】:2013-08-13 22:36:38
【问题描述】:

今天我在我的网站上制作了一个联系表。一切正常,电子邮件已正确发送到指定的电子邮件 ($this->email->to('myemail@address.com'))。

在我的 application/config/email.com 我有:

$config = Array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => 'myemail@gmail.com',
    'smtp_pass' => 'mypassword',
    'mailtype'  => 'html', 
    'charset'   => 'iso-8859-1'
);

但是现在,当我查看 myemail@address.com 的邮箱时,我从我的网站发送的每封邮件都会收到“myemail@gmail.com”。

我不知道这是否是标准行为?

如何将输入框中输入的电子邮件用作“发件人”电子邮件?

我的控制器函数如下所示:

    public function sendmail()
    {
        $config['mailtype'] = 'html';
        $config['protocol'] = 'smtp';
        $config['smtp_host'] = 'ssl://smtp.googlemail.com';
        $config['smtp_port'] = 465;
        $config['smtp_user'] = 'user@gmail.com';
        $config['smtp_pass'] = 'user@owrb';
        $confog['wordwrap'] = TRUE;

        $this->load->library('email', $config);
        $this->email->set_newline("\r\n");

        $this->email->from($this->input->post('from'), $this->input->post('name'));

        $this->email->to('info@keessonnema.nl');    

        $this->email->subject($this->input->post('subject'));      

        $naam = $this->input->post('name');
        $email = $this->input->post('from');
        $tel = $this->input->post('tel');
        $site = $this->input->post('site');
        $sub = $this->input->post('subject');
        $msg = $this->input->post('message');

        $this->email->message("
        <div id='email'>
        <p><b>Bedrijf:</b> <br/> $naam</p>
        <p><b>Email:</b> <br/> $email</p>
        <p><b>Tel:</b> <br/> $tel</p>
        <p><b>Website:</b> <br/> $site</p>
        <p><b>Onderwerp:</b> <br/> $sub</p>
        <p><b>Toelichting:</b> <br/> $msg</p>
        </div>
        ");

        $success = ('
        <div style="position: absolute; top: 50%; left: 50%; background-color: rgba(0,0,0,0.8);">Uw Email is succesvol verzonden!</div>
        ');

        if($this->email->send())
        {
            $this->session->set_flashdata('msg', 'Email successvol verzonden.');
            redirect('contact/index');
        }
        else
        {
            show_error($this->email->print_debugger());
        }
    }

希望有人能提供帮助。

【问题讨论】:

    标签: php codeigniter email smtp gmail


    【解决方案1】:

    我的猜测是 Gmail 会限制任意“发件人”地址。 为什么 ?为了防止欺骗。

    (想象一下,如果可能的话,您可以从“big_bank@blabla.com”向任何人发送电子邮件...)

    编辑: 快速谷歌搜索得到了这个:How to change from-address when using gmail smtp server

    Google 会重写您发送的邮件中的 From 和 Reply-To 标头 它是与您的 gmail 帐户相关的值的 SMTP 服务。

    gmail 的 SMTP 功能并非旨在开放或中继 服务。如果它允许 From 标头的任何值,它将 大大削弱了谷歌在垃圾邮件服务方面的地位,因为有 将无法验证发件人的凭据。

    来源: https://stackoverflow.com/a/1332803/2615399

    Tl;dr :你不能(...使用 gmail)。

    【讨论】:

    • 例如,我将不得不将我的 smtp 更改为 sendmail。明天会看这个。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2012-12-16
    • 2015-04-09
    • 2017-12-07
    • 2013-01-07
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多