所以我有一个脚本,可以从我网页上的表单发送邮件。用户只需输入他的邮件地址、信息和姓名即可。首先,我将邮件发送到我的联系地址。(这工作正常)然后我向用户的邮件地址发送邮件。(这不起作用)最后一个邮件函数返回成功但用户没有收到邮件。我试图记录所有内容,但我无法弄清楚为什么邮件可能已发送但未收到。当我在正文中带有像“repondons”这样的法国口音时,邮件不会发送,但是当它只是“repondons”时它会起作用。我不明白为什么,但最好有口音<?php // site owner $site_name = 'just-request.fr'; $sender_domain = 'contact@just-request.fr'; $to = 'contact@just-request.fr'; // contact form fields $name = trim( $_POST['name'] ); $email = trim( $_POST['email'] ); $subject = trim( $_POST['subject'] ); $message = trim( $_POST['message'] ); // check for error $error = false; if ( $name === "" ) { $error = true; } if ( $email === "" ) { $error = true; } if ( $subject === "" ) { $error = true; } if ( $message === "" ) { $error = true; } // if no error, then send mail if ( $error == false ) { $body = "Name: $name \n\nEmail: $email \n\nMessage: $message"; $headers = "From: " . $site_name . ' <' . $sender_domain . '> ' . "\r\n"; $headers .= "Reply-To: " . $name . ' <' . $email . '> ' . "\r\n"; $mail_result = mail( $to, utf8_decode($subject), utf8_decode($body), $headers ); if ( $mail_result == true ) { $body = "Bonjour,\n\n"; $body .= "Merci de votre mail, nous le prenons en compte et vous repondrons des que possible.\n\n"; $body .= "Cordialement,\n"; $body .= "L'equipe Request. "; $subject = "Réponse automatique"; $new_mail_result = mail( $email, utf8_decode($subject), utf8_decode($body), $headers ); if ( $new_mail_result == true ) { echo 'success'; } else { echo 'unsuccess'; } } else { echo 'unsuccess'; } } else { echo 'error'; }
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
尝试使用mb_send_mail()而不是mail()。
将mb_language()设置为German/de
( ISO-8859-15 ) 或English/en
( ISO-8859-1 )。
无论ISO-8859-15和ISO-8859-1包括法国多余的字母。
ISO-8859-15是欧元升级后的ISO-8859-1。
https://www.php.net/manual/en/function.mb-send-mail.php
发送电子邮件。标题和消息根据mb_language()设置进行转换和编码。它是mail()的包装函数,因此另请参阅mail()以了解详细信息。
评论:我想念带有引号可打印编码的UTF-8 的mb_language()选项。 对于大多数(欧洲)“几乎是ASCII ”的语言特定字母表来说,这会很好。
- 1 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消