dongtaidai0492 2014-08-17 09:25
浏览 10
已采纳

PHP联系表格:如果不是短的,则不发送西里尔字母

I am making a contact form on my website and, trying to submit it, I get two outcomes:
1. I wrote email in english, and, no matter how long it is, it is sent perfectly fine.
2. I wrote it in russian. If it is shorter than about 10 symbols - I get the email and it is even correctly rendered. If it is longer than that - I just never get this email!

my html header includes:

  <meta charset="UTF-8" name="viewport" HTTP-EQUIV="Pragma">

my form:

  <form method="post" action="a.php">
    <input type="text" name="name">
    <input type="submit">
  </form>

my a.php:

<?php

$name = $_POST['name'];

$header = "From: Hi";
$header .= "Content-Type: text/plain; charset=utf-8";

$subject = "This is letter";
$email_to = "***my email***";
$message = "Name: $name."

mail($email_to, $subject, $message, $header);

?>

Please help, I don't have a clue on why is that and how to fix it.

  • 写回答

1条回答 默认 最新

  • dongmo8943 2014-08-17 10:00
    关注
    $subject = '=?UTF-8?B?' . base64_encode($subject) . '?='; 
    

    What base64_encode() does is best explained in PHP manual:

    base64_encode() is designed to make binary data survive transport through transport layers that are not 8-bit clean, such as mail bodies.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问