1
我試圖通過way2sms API和郵件通過 PHPMailer的API來發送短信,但問題是我收到3短信和3郵件 我運行的PHP。PHP發送短信和電子郵件的3倍(使用Android作爲前端和發送請求到服務器中使用抽射)
<?php
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();
}
?>
其餘全部數據庫和其他代碼工作正常。當我只嘗試 利用發送短信下面的代碼就只發送一條消息
<?php
require_once 'smsapi/way2sms-api.php';
sendWay2SMS('username', 'password', $uname,' Message');
?>
或當我只嘗試 用來發送電子郵件下面的代碼就只發送一封電子郵件
<?php
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<String>() {
@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<String, String> 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<String,String> params = new Hashtable<String, String>();
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);
}
這很奇怪,但我敢打賭你的腳本正在運行三次,可能是通過瀏覽器插件。您可以檢查 - 在郵件末尾添加一個隨機數字 - 如果每封郵件的內容不同,您就會知道腳本正在分三次運行。如果他們是相同的,你會知道你的單個消息正在發送三次。 – Synchro
註釋發送短信部分,並輸入您的電子郵件作爲接收方檢查您是否收到3封電子郵件。如果你做得很好,那麼你的代碼運行3次。那麼它很可能是一個循環,有的人多次重複這個任務。一步一步向後看,看看它發生了什麼。 –
是循環3次。當我評論發送代碼,然後我也收到3封電子郵件與相同的消息。我在前端使用android,並使用volley庫向服務器發送請求(希望這可能有用)。 –