2012-01-17 81 views

回答

23

這裏是解決方案::

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email"); 
i.putExtra(Intent.EXTRA_TEXT , "body of email"); 
try { 
    startActivity(Intent.createChooser(i, "Send mail...")); 
} catch (android.content.ActivityNotFoundException ex) { 
    Toast.makeText(MyActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
} 
2

你可以寫使用的.Net,Java或PHP的服務器端腳本。使Web請求(異步)用的參數domain.com/sendemail.php:

  • 電子郵件地址發送到
  • 主題(可能是可選的,但我個人將填補了這一點)
  • 電子郵件正文

然後,服務器端腳本可以爲您處理這一切,併爲您提供電子郵件佈局的更多靈活性,而無需執行應用更新,如果需要更改某些內容。這也意味着電子郵件可以來自應用程序,而不是個人用戶保持匿名(這可能會或可能沒有用,因爲你沒有說過)。

要做所有這些看看Painless Threading article by Android然後看看如何提出Web請求。

選項B:

使用的意圖,像這樣:

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

String[] recipients = new String[]{"[email protected]", "",}; 

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients); 

emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test"); 

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "This is email's message"); 

emailIntent.setType("text/plain"); 

startActivity(Intent.createChooser(emailIntent, "Send mail...")); 

參考:http://thedevelopersinfo.wordpress.com/2009/10/22/email-sending-in-android/

+0

我已將此代碼添加到我的活動中。但仍然沒有工作。它沒有顯示任何錯誤消息。但郵件沒有發送。 – Thiru 2012-01-18 03:35:30

2

您可以從代碼直接發送電子郵件:

String to = "[email protected]"; 

    String from = "[email protected]"; 

    Properties properties = System.getProperties(); 

    properties.setProperty("mail.smtp.host", SMPT_HOSTNAME); 

    Session session = Session.getInstance(properties, new Authenticator() { 
     @Override 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(USERNAME, PASSWORD); 
     } 
    }); 

    try { 
     MimeMessage message = new MimeMessage(session); 

     message.setFrom(new InternetAddress(from)); 

     message.addRecipient(Message.RecipientType.TO, new InternetAddress(
       to)); 

     message.setSubject("This is the Subject Line!"); 

     message.setText("This is actual message"); 

     Transport.send(message); 
     System.out.println("Sent message successfully...."); 
    } catch (MessagingException mex) { 
     mex.printStackTrace(); 
    } 
+0

javax.mail。*在Android上不可用。 – 2014-01-15 20:13:47

相關問題