I am new to android. And i want to send OTP to users email can anyone help?..
package com.example.emailtutorial;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.net.PasswordAuthentication;
import java.util.Properties;
public class MainActivity extends AppCompatActivity {
// TextView emailTo,subject;
EditText mailTo,subjectEtxt,body;
Button btnSend;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mailTo=findViewById(R.id.mailToEtxt);
subjectEtxt=findViewById(R.id.subjectEtxt);
body=findViewById(R.id.mailBody);
btnSend=findViewById(R.id.btnSend);
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isOnline())
{
sendMail();
}
}
});
}
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
public void sendMail()
{
final String username = "username@gmail.com";
final String password = "password";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from-email@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("to-email@gmail.com"));
message.setSubject("Testing Subject");
message.setText("Dear Mail Crawler,"
+ "\n\n No spam to my email, please!");
MimeBodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart();
messageBodyPart = new MimeBodyPart();
String file = "path of file to be attached";
String fileName = "attachmentName"
DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);
System.out.println("Done");
}
catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
This is the above code
Сначала я создал 2 функции, чтобы проверить, имеет ли пользователь активное соединение inte rnet на своем устройстве, что выполняется методом isOnline в коде.
, затем отправка критической части. почтовый код который выполняется с помощью функции sendMail
. Кто-нибудь может предложить какие-либо изменения и решить проблему зависимости для вышеуказанного кода в функции sendMail
, но я не уверен насчет проверки зависимостей и разрешений в новом android студия. Я относительно новичок в android