我正在尝试用Ajax表单和swiftmailer发送电子邮件。它在本地工作,但在生产中不起作用。
当contact_me.php不是从表单而是显式写入的参数时,电子邮件甚至是从服务器发送的,所以我认为Swiftmailer正在工作。
contact_me.js
// Contact Form Scripts
$(function() {
$("#contactForm input,#contactForm textarea").jqBootstrapValidation({
preventSubmit: true,
submitError: function($form, event, errors) {
// additional error messages or events
},
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
$.ajax({
url: "././mail/contact_me.php",
type: "POST",
data: {
name: name,
phone: phone,
email: email,
message: message
},
dataType: "text",
cache: false,
success: function() {
// Success message
},
error: function() {
// Fail message
},
});
},
filter: function() {
return $(this).is(":visible");
},
});
$("a[data-toggle=\"tab\"]").click(function(e) {
e.preventDefault();
$(this).tab("show");
});
});
/*When clicking on Full hide fail/success boxes */
$('#name').focus(function() {
$('#success').html('');
});
contact_me.php
<?php
// Autoload for swiftmailer
require_once '../vendor/autoload.php';
// Check for empty fields
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['phone']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$name = strip_tags(htmlspecialchars($_POST['name']));
$email_address = strip_tags(htmlspecialchars($_POST['email']));
$phone = strip_tags(htmlspecialchars($_POST['phone']));
$message = strip_tags(htmlspecialchars($_POST['message']));
// Create the email and send the message
$email_subject = "TrustPair nouveau contact : $name";
$email_body = "New form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message";
// Add here swiftmailer code, need to return true
// Create the Transport
$transport = (new Swift_SmtpTransport('mail.gandi.net', 465, "ssl"))
->setUsername('name@domain.com')
->setPassword('password')
;
// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);
// Create the message
$message = (new Swift_Message())
// Give the message a subject
->setSubject($email_subject)
// Set the From address with an associative array
->setFrom(['noreply@domain.com' => 'Domain no reply'])
// Set the To addresses
->setTo(['firstmailto@gmail.com', 'secondmailto@gmail.com'])
// Give it a body
->setBody($email_body)
;
// Send the message
$result = $mailer->send($message);
echo $result;
// result is equal to the nbr of message recipients
if ($result == 0) {
return false;
} else {
return true;
}
?>
Nginx服务器不允许使用静态页面(即.*.html)进行POST请求。
有黑客来处理这个问题。在我的例子中,它修复了405错误,但电子邮件没有发送。
解决办法是改变索引。要索引的html。php,请确保调整您的Nginx配置以反映这些更改。
已解决,TMD,chatgpt 的毛病
配置 NGINX NGINX 相关的配置可以单独写一本书,不过一开始,我们不会用到太多的配置选项。这本书主要介绍搭建一个 LEMP 环境的流程,你可以在相关资源里找到扩展学习的课程与资料。 先去看一下 NGINX 配置文件所在地。 查看 NGINX 的配置: cd /etc/nginx ls 返回: conf.d koi-utf mime.types nginx.conf
本文向大家介绍Nginx常见的错误配置举例,包括了Nginx常见的错误配置举例的使用技巧和注意事项,需要的朋友参考一下 Nginx是当前主流的Web服务。 以下是一些最常见的错误配置。 Missing root location root指令指定Nginx的根目录。 在上面的示例中,根目录是/etc/nginx,这意味着我们可以访问该目录下的文件。 上面的配置没有/的位置(location / {
主要内容:1. 设置错误日志,2. 设置访问日志,3. 启用条件日志记录,4. 日志记录到Syslog本节介绍如何在NGINX中配置日志记录错误和处理的请求。在本文章中将涉及以下内容 - 设置错误日志 设置访问日志 启用条件日志记录 日志记录到Syslog 1. 设置错误日志 NGINX将遇到的不同严重性级别问题的信息写入错误日志。 指令将日志记录设置为特定文件,或,并指定要记录的消息的最低级别。 默认情况下,错误日志位于(绝对路径取决于操作系统和安装),并记录来自所指定的所有严重级别的消息。
NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。 默认情况下,文件名为并放在目录中(对于开源NGINX产品,位置取决于用于安装NGINX和操作系统的软件包系统,它通常位于或。) 配置文件由指令及其参数组成。 简单(单行)指令各自以分号结尾。 其他指令作为“容器”,将相关指令组合在一起,将其包围在花括号()中。 以下是简单指令的一些示例。 为了使配置更易于维护,建议您将其拆分
那么... 我在端口8080的服务器上运行了一个节点应用程序,我正在尝试使用NGINX和CloudFlare使其能够通过SSL工作。请注意以下几点。。。 我的主机正在运行Ubuntu 16.04 LTS ...我以前的NGINX配置看起来像。。。 ...现在看起来。。。 ...我遵循了这里的例子和它在这里提供的链接,我怀疑上面的一切都是必需的(我是一个极简主义者)。每当我运行时,我仍然会在未指定s