PHPMailer向收件人发送电子邮件电子邮件
几天前,我开始了我的第一个项目,我被分配在工作。今天,我在PHPMailer上遇到了一个错误。本质上,当它应该发送用$\u POST拍摄的电子邮件时,它不会。相反,它将电子邮件发送给应该接收它的人(电子邮件) 这是我的密码 index.php:PHPMailer向收件人发送电子邮件电子邮件,php,phpmailer,Php,Phpmailer,几天前,我开始了我的第一个项目,我被分配在工作。今天,我在PHPMailer上遇到了一个错误。本质上,当它应该发送用$\u POST拍摄的电子邮件时,它不会。相反,它将电子邮件发送给应该接收它的人(电子邮件) 这是我的密码 index.php: TOP PART: <?php include 'db.php';?> <?php include 'function.php';?> <?php if(isset($_POST['subcon'])){
TOP PART:
<?php include 'db.php';?>
<?php include 'function.php';?>
<?php
if(isset($_POST['subcon'])){
$sender = new SendData();
$sender->SendEmails($_POST['email'],$_POST['message']);
}
?>
FORM PART:
<div class="container-fluid">
<main class="form-signin">
<form method='post' action='index.php'>
<h1 class="mb-3 contact-text">Contact Me</h1>
<div class="form-floating mb-3">
<input type="text" class="form-control" name='usrn' id="floatingPassword" placeholder="Username">
<label for="floatingPassword" name='usrn' id='username-text'>Username</label>
</div>
<div class="form-floating mb-3">
<input type="email" name='email' class="form-control" id="floatingInput" placeholder="name@example.com">
<label for="floatingInput" id='email-text'>Email address</label>
</div>
<div class="md-form mb-3">
<textarea id="form7" class="md-textarea form-control" name='message' rows="10" noresize </textarea>
</div>
<button class="w-100 btn btn-lg btn-text btn-outline-dark mb-2" name='subcon' type="submit">Sign in</button>
</form>
</main>
</div>
顶部部分:
构成部分:
联系我
用户名
电子邮件地址
我一直在试图自己解决这个问题,但我想我需要帮助。你在试图欺骗/伪造电子邮件发件人,gmail只会忽略你。别那么做。遵循:使用您自己的“发件人”和“收件人”地址,并使用提交人的地址作为回复地址:
$mail->addAddress($receiver);
$mail->setFrom($receiver, $_POST['username']);
$mail->addReplyTo($_POST['email']);
别忘了做一些错误检查代码><代码>$mail->setFrom($sender)代码>/
$receiver='gimmy。none@gmail.com';代码><代码>$mail->addAddress($receiver)代码>这不是你所做的吗?如果想向更多的收件人发送电子邮件,请多次使用addAddress()
,即$mail->addAddress($sender)
它应该发送用$\u POST拍摄的电子邮件
-你是说它应该从POST发送到电子邮件地址吗?如果是的话,我想你只是把自己弄糊涂了<代码>$mail->setFrom($sender)
设置消息来自表单中输入的电子邮件地址,以及$mail->addAddress($receiver)代码>将其设置为转到硬编码的gimmy…
地址。还请注意,您正在将两个参数传递给sendmails()
,但这些参数从未使用过。
<?php include "db.php"; ?>
<?php
/*
========================|
==> Requires & Use <==|
========================|
*/
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require '../third-party/vendor/autoload.php';
/*
========================|
=> Classes <==|
========================|
*/
class SendData{
public function SendEmails(){
/*
========================|
==> PUBLIC VARIABLES |
========================|
*/
$receiver ='gimmy.none@gmail.com';
$sender = $_POST['email'];
$username = $_POST['usrn'];
$mail = new PHPMailer(true);
try {
$mail->SMTPDebug = 1;
$mail->isSMTP();
$mail->Host = 'smtp.googlemail.com';
$mail->SMTPAuth = true;
$mail->Username = '';
$mail->Password = 'APP_PASSWORD';
$mail->SMTPSecure = "tls";
$mail->Port = 587;
$mail->setFrom($sender);
$mail->addAddress($receiver); //Who is going to receive it
//Content
$mail->isHTML(true); //Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
}
}
?>
$mail->addAddress($receiver);
$mail->setFrom($receiver, $_POST['username']);
$mail->addReplyTo($_POST['email']);