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 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重