1

Web サイトに連絡先フォームを作成し、Web サイト アカウント (contact@mywebsite.com) に電子メールを送信するために、メッセージを受信するのと同じ電子メールを使用して、gmail smtp を使用しています。

したがって、ユーザーは私のウェブサイトにアクセスし、連絡先ページをクリックして、フォームに名前、電子メール、メッセージを入力します。

次のコードを含むメールを送信するよりも:

        $config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.googlemail.com',
        'smtp_port' => 465,
        'smtp_user' => 'contact@mywebsite.com',
        'smtp_pass' => 'mypass',
        'mailtype' => 'html',
        'charset' => 'utf-8'
    );
    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");

    $email = $this->input->post('email');
    $name = $this->input->post('name');
    $msg = $this->input->post('msg');
    $this->email->to('contact@mywebsite.com');
    $this->email->reply_to($email); //User email submited in form
    $this->email->from($email, $name);
    $this->email->subject('Conctact form');
    $this->email->message($msg);
    if ($this->email->send())
    {
        return true;
    } else
    {
        echo $this->email->print_debugger();
        return false;
    }

電子メールは「contact@mywwebsite.com」の受信トレイに届きます。メッセージは通常どおり読むことができますが、メッセージを送信したユーザーに返信する代わりに「返信」をクリックすると、次のように返信されます。 「私」(contact@mywebsite.com 宛て)。

私のアドレスではなくユーザーのアドレスに返信するように、reply_to を既に構成していますが、それでも contact@mywebsite.com にアクセスします。

これを修正する方法は?コードまたは Gmail の設定でさらに何かを変更する必要がありますか?

(追伸: サイト mail.google.com から直接、メールを読むために gmail インターフェイスを使用しています)

前もって感謝します。

-- また、メールを受信すると、「From: '提出されたフォームの名前'」と表示されます。

Not: "From: '送信されたフォームの名前' <'送信されたフォームのメール'>" のようにすべきです。

4

2 に答える 2

1

別のユーザーを介して電子メールを送信することで修正しました... me@mywebsite.com から contact@mywebsite.com に送信し、返信をクリックすると、選択したユーザーはフォームでメッセージを送信したユーザーと同じでした。

Gmail が Reply-To を無視しているように見える

于 2013-02-22T00:36:07.617 に答える
1

Gmail はこれを行っており、回避策はないと思います。

「差出人」アドレスは、メールの送信に使用しているアカウントのみになります。単純に gmail のサーバーを「通過」することはできません。

それを行う必要がある場合は、SendGrid または独自の smtp サーバーのようなものが必要になります。

于 2013-02-21T23:46:00.277 に答える