我试图通过way2sms API和邮件通过 PHPMailer的API来发送短信,但问题是我收到3短信和3邮件 我运行的PHP。PHP发送短信和电子邮件的3倍(使用Android作为前端和发送请求到服务器中使用抽射)
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$status = $_POST['status'];
$uname = $_POST['uname'];
$dept = $_POST['dept'];
$ename = $_POST['ename'];
require_once('dbConnect.php');
$sql = "SELECT name,email FROM user WHERE mobile='" . $uname . "'";
$check = mysqli_fetch_row(mysqli_query($con, $sql));
$username = $check[0];
$email = $check[1];
require_once 'smsapi/way2sms-api.php';
sendWay2SMS('username', 'password', $uname,' Message');
require_once 'mailapi/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('[email protected]', 'Name');
$mail->addAddress($email, $username);
$mail->isHTML(true);
$mail->Subject = 'Subject';
$mail->Body = 'Message';
!$mail->send();
}
?>
其余全部数据库和其他代码工作正常。当我只尝试 利用发送短信下面的代码就只发送一条消息
require_once 'smsapi/way2sms-api.php';
sendWay2SMS('username', 'password', $uname,' Message');
?>
或当我只尝试 用来发送电子邮件下面的代码就只发送一封电子邮件
require_once 'mailapi/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('[email protected]', 'Name');
$mail->addAddress($email, $username);
$mail->isHTML(true);
$mail->Subject = 'Subject';
$mail->Body = 'Message';
!$mail->send();
?>
Android code
public void sendMessage(View view){
StringRequest stringRequest = new StringRequest(Request.Method.POST, UPLOAD_URL1,
new Response.Listener() {
@Override
public void onResponse(String s) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
try {
Toast.makeText(EventDetailActivity.this, volleyError.getMessage().toString(), Toast.LENGTH_LONG).show();
}catch (Exception e){
}
}
}){
@Override
protected Map getParams() throws AuthFailureError {
String Status = ebtn.getText().toString().trim().toLowerCase();
SharedPreferences sharedPreferences = getSharedPreferences(SharedPrefConfig.SHARED_PREF_NAME,Context.MODE_PRIVATE);
String uname = sharedPreferences.getString(SharedPrefConfig.USERNAME_SHARED_PREF, null);
Map params = new Hashtable();
params.put("status", Status);
params.put("uname", uname);
params.put("dept", dept);
params.put("ename", name);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
+2
这很奇怪,但我敢打赌你的脚本正在运行三次,可能是通过浏览器插件。您可以检查 - 在邮件末尾添加一个随机数字 - 如果每封邮件的内容不同,您就会知道脚本正在分三次运行。如果他们是相同的,你会知道你的单个消息正在发送三次。 –
+0
注释发送短信部分,并输入您的电子邮件作为接收方检查您是否收到3封电子邮件。如果你做得很好,那么你的代码运行3次。那么它很可能是一个循环,有的人多次重复这个任务。一步一步向后看,看看它发生了什么。 –
+0
是循环3次。当我评论发送代码,然后我也收到3封电子邮件与相同的消息。我在前端使用android,并使用volley库向服务器发送请求(希望这可能有用)。 –