【发布时间】:2022-01-07 01:56:10
【问题描述】:
我们有一个 HTML 表单,它收集数据并提交到 PHP 页面,该页面将表单数据发送到我们的电子邮件。 问题是我们正在使用 AWS 服务器,而 AWS 在端口 25 上有一个阻塞,导致电子邮件无法正确发送。 我们现在的情况是,当我们将表单发送到普通的 Gmail 帐户时,电子邮件会进入垃圾邮件,但是当我们将其发送到 Gsuite 帐户时,即使是垃圾邮件,电子邮件也不会收到。 我们正在考虑只使用 SMTP 发送我们的电子邮件,而不会发送垃圾邮件或收不到垃圾邮件。
我们的 HTML 代码:
<form name='form1' action="/wp-includes/phpmailer2/sendMail.php" >
<input id="first_name" name="first_name" required="required" type="text" value="" placeholder="" >
</form>
PHP 代码:
<?php
$webmaster_email = "user@example.com";
$feedback_page = "feedback_form.html";
$error_page = "error_message.html";
$thankyou_page = "https://rentersshield.org/success/";
$msg = "First Name: " . $first_name . "\r\n" .
function isInjected($str) {
$injections = array('(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str)) {
return true;
} else {
return false;
}
}
if (!isset($_REQUEST['first_name'])) {
header( "Location: $feedback_page" );
} elseif (empty($first_name) ) {
header( "Location: $error_page" );
} elseif ( isInjected($first_name) || isInjected($comments) ) {
header( "Location: $error_page" );
} else {
mail( "$webmaster_email", "New Form Submission", $msg );
header( "Location: $thankyou_page" );
}
?>
$first_name = $_REQUEST['first_name'] ;
请告诉我们是否需要采取措施将其发送到我们的 Gsuite 电子邮件帐户而不进入垃圾邮件
【问题讨论】:
-
良好的代码缩进将帮助我们阅读代码,更重要的是,它将帮助您调试代码Take a quick look at a coding standard 为您自己的利益。您可能会被要求在几周/几个月内修改此代码,最后您会感谢我的。
-
是的,也许可以通过 GSuite SMTP 而不是本地邮件服务器发送。在 PHP 中使用 PHPMailer 可以让这更容易。
-
$msg = "First Name: " . $first_name . "\r\n" .错字,那只狗不会打猎 -
$first_name = $_REQUEST['first_name'] ;PHP 标签外,另一只不会打猎的狗? -
如何使用 SMTP 而不是本地邮件服务器,这是我们的问题。当我们按照github.com/PHPMailer/PHPMailer中的例子,代码不起作用