How to send a QR code as image via email?

Viewed 130

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);
}

}

0 Answers
Related