UTF-8 in PHP mail() for ÜÖÄ


UTF-8 in PHP mail() for ÜÖÄ

我有这个PHP代码发送邮件

            if(Input::has('email')){
                $to      = Input::get('email');
                $link    = 'blabla';
                $subject = 'blabla';
                $message = "Ü Ä Ö jfklsfjal";
                $headers = 'From: dontreply@asdf.com' . "'r'n" .
                    'Reply-To: dontreply@asdf.com' . "'r'n" .
                    'Content-Type: text/plain;charset=utf-8'r'n' . "'r'n" .
                    'X-Mailer: PHP/' . phpversion();
                mail($to, $subject, $message, $headers);
            }

问题是,它仍然不发送Ö Ä等不正确(但我只是添加了内容类型)!

有人知道为什么它不起作用吗?

我认为你的标题是不正确的,因为你有'r'n部分的内容类型(在单引号中包装),即:

            $headers = 'From: dontreply@asdf.com' . "'r'n" .
                'Reply-To: dontreply@asdf.com' . "'r'n" .
                'Content-Type: text/plain;charset=utf-8'r'n' . "'r'n" .
-------------------------------------------------------^^^^
                'X-Mailer: PHP/' . phpversion();

试着把上面的改成:

            $headers = 'From: dontreply@asdf.com' . "'r'n" .
                'Reply-To: dontreply@asdf.com' . "'r'n" .
                'Content-Type: text/plain;charset=utf-8' . "'r'n" .
                'X-Mailer: PHP/' . phpversion();

如果不成功,试试这个:

            $headers = 'From: dontreply@asdf.com' . "'r'n" .
                'Reply-To: dontreply@asdf.com' . "'r'n" .
                'Content-Type: text/html;charset=utf-8' . "'r'n" .
                'X-Mailer: PHP/' . phpversion();