Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何添加一个PHP脚本来自动响应一个";“谢谢你”;消息_Php_Email_Phpmyadmin_Phpmailer_Contact Form - Fatal编程技术网

我如何添加一个PHP脚本来自动响应一个";“谢谢你”;消息

我如何添加一个PHP脚本来自动响应一个";“谢谢你”;消息,php,email,phpmyadmin,phpmailer,contact-form,Php,Email,Phpmyadmin,Phpmailer,Contact Form,我是php新手,刚刚学会了如何使用php和phpMail将用户的电子邮件地址发送到我的电子邮件地址,以添加到新闻稿中 但是,现在我想在php中添加一个简单的自动回复脚本,因此当用户将他们的电子邮件添加到我的访客列表时,它会向他们的电子邮件发送一封自动回复电子邮件,上面写着: 谢谢你的注册。[我的标志图片]www.mysite.com 我搜索了又搜索,但是我还没有找到一个关于如何在php中创建自动响应脚本的正确答案。请告诉我如何完成这项任务。谢谢大家! <?php $email = $_R

我是php新手,刚刚学会了如何使用php和phpMail将用户的电子邮件地址发送到我的电子邮件地址,以添加到新闻稿中

但是,现在我想在php中添加一个简单的自动回复脚本,因此当用户将他们的电子邮件添加到我的访客列表时,它会向他们的电子邮件发送一封自动回复电子邮件,上面写着:

谢谢你的注册。[我的标志图片]www.mysite.com

我搜索了又搜索,但是我还没有找到一个关于如何在php中创建自动响应脚本的正确答案。请告诉我如何完成这项任务。谢谢大家!

<?php

$email = $_REQUEST['email'] ;

require("C:/inetpub/mysite.com/PHPMailer/PHPMailerAutoload.php");

$mail = new PHPMailer();

// set mailer to use SMTP
$mail->IsSMTP();

$mail->Host = "smtp.comcast.net"; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "myusername@comcast.net"; // SMTP username
$mail->Password = "*******"; // SMTP password
$mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 25;                                    


$mail->From = $email;

// below we want to set the email address we will be sending our email to.
$mail->AddAddress("myemail@gmail.com", "Guestlist");

// set word wrap to 50 characters
$mail->WordWrap = 50;
// set email format to HTML
$mail->IsHTML(true);

$mail->Subject = "A new member wishes to be added";

$message = $_REQUEST['message'] ;
$mail->Body = $email;
$mail->AltBody = $email;

if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}

echo "Message has been sent";

$mail2 = new PHPMailer();

// set mailer to use SMTP
$mail2->IsSMTP();

$mail2->Host = "smtp.comcast.net"; // specify main and backup server
$mail2->SMTPAuth = true; // turn on SMTP authentication
$mail2->Username = "myusername@comcast.net"; // SMTP username
$mail2->Password = "*******"; // SMTP password
$mail2->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail2->Port = 25;                                    


$mail2->From = $email;

// below we want to set the email address we will be sending our email to.
$mail2->AddAddress("$email");

// set word wrap to 50 characters
$mail2->WordWrap = 50;
// set email format to HTML
$mail2->IsHTML(true);

$mail2->Subject = "Thank you for joining";

$message = "Please stay tune for updates" ;

$message = $_REQUEST['message'] ;
$mail2->Body = $message;
$mail2->AltBody = $message;

if(!$mail2->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail2->ErrorInfo;
exit;
}

echo "Message has been sent";
?>

更新:1 好的,我知道了如何向用户发送自动回复电子邮件。但是,现在用户正在接收带有自己电子邮件地址和Root用户名称的消息

那么,我该如何解决此问题,以便用户在收到自动回复时看到我的电子邮件地址,以及如何确保它显示的是我的姓名而不是根用户?添加:

echo "Message has been sent";
$mail = new PHPMailer();
$mail->From = 'myemail@gmail.com';

// below we want to set the email address we will be sending our email to.
$mail->AddAddress($email);

// set word wrap to 50 characters
$mail->WordWrap = 50;
// set email format to HTML
$mail->IsHTML(true);

$mail->Subject = "Thanks for joining ...";

$message = "Thanks for joining...";
$mail->Body = $email;
$mail->AltBody = $email;

$mail->Send();

不要使用提交人的电子邮件地址作为发件人地址-这将不起作用,因为它看起来像是伪造的,并且将无法通过SPF检查。将您自己的地址作为发件人地址,并添加提交人的地址作为答复

使用
SMTPSecure='ssl'
Port=25
是一种极不寻常的组合,很可能是错误的。ssl/465和tls/587更为常见

要发送多条消息,无需创建第二个实例,只需重复使用同一个实例即可。您可以使用
$mail->clearAddresses()
,重置您想要的任何单个属性(如
Body
)并清除地址,然后再次调用
$mail->send()


看起来您的代码基于一个旧的示例(请尝试)-确保您正在使用-至少5.2.10。

将电子邮件地址插入数据库->向用户发送电子邮件。不清楚您遇到了什么困难,只需创建一些新变量(例如,
$usermail
或类似的内容)和另一个带有感谢信息的消息变量,以及电子邮件变量,然后再次在其上运行该过程。我对php不熟悉,你能详细说明一下如何添加$usermail和另一个消息变量吗?@Dagon你想获得荣誉吗?第二轮PHPMailer你可以做一些简单的事情,比如
$mail2=new PHPMailer()
然后为
$mail
$mail2
执行所有操作,除了用您想要的内容替换主题和正文,以及使用
$useremail
执行
AddAddress()
callI添加脚本时运气不佳。如果有帮助,这是我的html:Email:
检查我的编辑。自动应答器现在可以工作了。但是,用户会收到名为RootUser的自动回复电子邮件,并且是从他们自己的电子邮件发送的。那么,为什么我的电子邮件地址没有出现在自动回复电子邮件中呢?因为他们已经愚蠢地将addaddress设置为表单中的电子邮件,而它应该设置为您的电子邮件。引用答案:不要使用提交人的电子邮件地址作为发件人地址-这不会起作用,因为它看起来像是伪造的,并且会通过SPF检查。将您自己的地址作为发件人地址,并添加提交人的地址作为回复。谢谢,您解决了我问题的后半部分。通过使用最新的phpmailer代码,我现在能够将相应的姓名与他们的电子邮件进行匹配。不再有根用户。