The following code sends an email and also generates a QR code. The problem is: I want to send the QR code by that same email as an image
how can I do it? Or how can I save the QR in a variable and send it by email?
EditText correo, nombre;
Button procesar;
ImageView image;
String texto="Santa Cruz \nAsientos:4 \nFecha:30/11/21 15:00 \nAsientos: 5,6,7 \nBus: CAMA \nCod_Bus: 0010";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tarjeta);
procesar=(Button) findViewById(R.id.procesar);
correo=(EditText) findViewById(R.id.correo);
nombre=(EditText) findViewById(R.id.nombre);
image=(ImageView) findViewById(R.id.iv);
procesar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String username="termin@gmail.com";
final String password="password";
String messageToSend="Este es el ticket para el cliente: "+nombre.getText().toString() +" GRACIAS POR COMPRAR"+ image;
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 Authenticator(){
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
});
try {
Message message= new MimeMessage(session);
message.setFrom(new InternetAddress(username));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(correo.getText().toString()));
message.setSubject("Enviando mensaje");
message.setText(messageToSend);
Transport.send(message);
Toast.makeText(getApplicationContext(),"Ticket Enviado correctamente a :"+correo.getText().toString(),Toast.LENGTH_LONG).show();
}catch (MessagingException e){
throw new RuntimeException(e);
}
***//codigo QR***
MultiFormatWriter writer= new MultiFormatWriter();
try {
BitMatrix matrix=writer.encode(texto, BarcodeFormat.QR_CODE
,350,350);
BarcodeEncoder encoder= new BarcodeEncoder();
Bitmap bitmap= encoder.createBitmap(matrix);
image.setImageBitmap(bitmap);
InputMethodManager manager= (InputMethodManager) getSystemService(
Context.INPUT_METHOD_SERVICE
);
manager.hideSoftInputFromWindow(correo.getApplicationWindowToken(),0);
} catch (WriterException e) {
e.printStackTrace();
}
}
});
StrictMode.ThreadPolicy policy= new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
}