Отправьте значение EditText из Android в PHP-файл и выполните функцию PHPmailer send () - PullRequest
0 голосов
/ 21 мая 2019

Итак, я хочу выполнить файл PHP, который находится на моем сервере (я использую XAMPP в качестве локального сервера). Мое приложение для Android получит ввод через приложение, затем в моем Java-коде выполнит указанную мной ссылку. Проблема в том, что я не знаю, как передать ввод в мой файл PHP. Мой код выполняет только предоставленную мной ссылку, но никогда не передает никакого значения.

Код, который я использую для запуска файла mailer.php

String link = "http://192.168.1.3/api/roadtrip/mailer.php"; 
new updateData().execute(link);

Мой класс updateDate ()

public class updateData extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        HttpURLConnection conn = null;

        try {
            URL url;
            url = new URL(params[0]);
            conn = (HttpURLConnection) url.openConnection();
            if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                InputStream is = conn.getInputStream();
            } else {
                InputStream err = conn.getErrorStream();
            }
            return "Done";
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (conn != null) {
                conn.disconnect();
            }
        }
        return null;
    }
}

Мой файл mailer.php

require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';
require 'phpmailer/src/Exception.php';

$mail = new PHPMailer\PHPMailer\PHPMailer();

    //Enable SMTP debugging. 
    $mail->SMTPDebug = 2;                               
    //Set PHPMailer to use SMTP.
    $mail->isSMTP();      

    //Set SMTP host name                          
    $mail->Host = 'smtp.gmail.com';
    //Set this to true if SMTP host requires authentication to send email
    $mail->SMTPAuth = true;                          
    //Provide username and password     
    $mail->Username = "my email";                 
    $mail->Password = "email pass";                           
    //If SMTP requires TLS encryption then set it
    $mail->SMTPSecure = "ssl";                           
    //Set TCP port to connect to 
    $mail->Port = 465;    

    $mail->From = "example@gmail.com";
    $mail->FromName = "RoadTrip";

    $mail->addAddress($emailAddress);

    $mail->isHTML(true);

    $mail->Subject = "RoadTrip Account Verification";
    $mail->Body = "<i>Please click the link below to verify your account</i>";
    $mail->AltBody = "Insert Link here";
    $mail->send();

Я хочу отправить 'emailAddress' из моего приложения для Android в файл php, а затем в почтовую программу PHP для отправки электронного письма.

1 Ответ

1 голос
/ 21 мая 2019

Здесь вам не хватает некоторых основ.

Прежде всего, вам необходимо предоставить значения, которые вы хотите использовать - в данный момент вы просто нажимаете на статический URL без параметров или без тела POST.

На принимающей стороне (PHP) вы обычно ожидаете, что такие параметры появятся в суперглобалах PHP $_GET, $_POST или $_REQUEST.

Так что, если вы отправили запрос на

http://192.168.1.3/api/roadtrip/mailer.php?email=user@example.com

Вы ожидаете, что $_GET['email'] будет содержать user@example.com.

Вам нужно выяснить, как правильно передать ваши параметры, и вы, вероятно, хотите использовать POST, а не GET для этого типа запроса, но это слишком большой вопрос для этого, который гораздо лучше охватывается любым базовым HTTP документацию, так что читайте!

...