簡體   English   中英

如何通過“謝謝”消息將PHP腳本添加到自動響應中

[英]How can I add a PHP script to Auto-respond with a “thank you” message

我是php新手,只是想出了如何在phpmailer中使用php來將用戶的電子郵件地址發送到我的電子郵件地址,以添加到新聞通訊中。

但是,現在我想在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用戶名的郵件。

那么,我該怎么辦才能解決此問題,以便用戶在收到自動回復時看到我的電子郵件地址,以及如何確保它說出我的姓名而不是root用戶?

不要將提交者的電子郵件地址用作發件人的地址,因為它看起來像是偽造的,因此將無法通過SPF檢查。 將您自己的地址作為發件人地址,並添加提交者的地址作為回復。

SMTPSecure = 'ssl'Port = 25是一種非常不尋常的組合,並且很可能是錯誤的。 ssl / 465和tls / 587更常見。

要發送多個消息,您無需創建第二個實例-只需重復使用同一實例即可。 您可以重置所需的任何單個屬性(例如Body )並使用$mail->clearAddresses()清除地址,然后再次調用$mail->send()

看起來您的代碼是基於舊示例(嘗試使用新示例)-確保您使用的是最新的PHPMailer-至少為5.2.10。

加:

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM