2014-01-28 2 views
0

Мне удалось отправить электронное письмо в Android-приложении; однако, я не знаю, как прикреплять изображения в моем письме. Как я могу это сделать?Присоединение изображений при отправке электронной почты с Android

public MailSender(String user, String password, final Context context) { 
    this.user = user; 
    this.password = password; 
    this.context = context; 

    this.bckMng = BackgroundManager.getInstance(context); 


    Properties props = new Properties(); 
    props.setProperty("mail.transport.protocol", "smtp"); 
     props.setProperty("mail.host", mailhost); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.port", "465"); 
     props.put("mail.smtp.socketFactory.port", "465"); 
     props.put("mail.smtp.socketFactory.class", 
       "javax.net.ssl.SSLSocketFactory"); 
     props.put("mail.smtp.socketFactory.fallback", "false"); 
     props.setProperty("mail.smtp.quitwait", "false"); 

    session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {   
     protected PasswordAuthentication getPasswordAuthentication() { 
      String userName = context.getResources().getString(R.string.source_username); 
      String password = context.getResources().getString(R.string.source_password); 
      return new PasswordAuthentication(userName, password); 
      } 
     }); 
} 

protected PasswordAuthentication getPasswordAuthentication() { 
    return new PasswordAuthentication(user, password); 
} 

в this.bckmng.getImages() я могу получить изображения ...

ответ

0

Использование ниже метод для отправки изображений.

  Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    emailIntent.setType("png/image"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { 
      "//email-id" }); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message); 
    Uri uri = Uri.fromFile(new File(Environment 
      .getExternalStorageDirectory(), "/saved_images/MyImage.png")); // Image path 
    emailIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    emailIntent.setType("text/plain"); 
    startActivity(emailIntent); 
0

Это путь я отправить сообщение прямо сейчас:

protected String doInBackground(String... params) { 

    String immediatlyMessage = params[0]; 
    try {  
     Message message = new MimeMessage(session);  
     message.setFrom(new InternetAddress(context.getResources().getString(R.string.source_username))); 

     EmailAddressDataSource eads = new EmailAddressDataSource(context); 
     eads.open(); 
     List<EmailAddress> emailsList = eads.getAllEmails(); 
     eads.close(); 
     String emailAdress = ""; 
     for(EmailAddress address: emailsList){ 
      emailAdress += address.getAddress(); 
      emailAdress+=","; 
     } 
     //message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(emailAdress)); 
     message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); 
     message.setSubject("Hey");   
     message.setContent(immediatlyMessage, "text/html; charset=utf-8"); 


    Transport.send(message);     
    } 
    catch (MessagingException e) {   
     e.printStackTrace(); 
    }   
    catch (Exception e) {    
     e.printStackTrace(); 
    }  
    return null;  
}  

ли я использовать намерение здесь? Каким путем?

0

попробовать это, но он не может работать на эмуляторах, но он работает на реальных телефонах

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 

    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailaddress); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message); 
    emailIntent.setType("image/png"); 

    ArrayList<Uri> uris = new ArrayList<Uri>(); 

    uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.file1)); 
    uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + R.drawable.file2)); 

    emailIntent.putExtra(Intent.EXTRA_STREAM, uris)); 

    startActivity(emailIntent); 
Смежные вопросы