Java 从我的android应用程序发送电子邮件
我必须从我的android应用程序发送电子邮件 我必须检查应用程序是否意味着我的logcat窗口出现以下错误:Java 从我的android应用程序发送电子邮件,java,android,Java,Android,我必须从我的android应用程序发送电子邮件 我必须检查应用程序是否意味着我的logcat窗口出现以下错误: 01-09 05:53:12.263: E/AndroidRuntime(824): FATAL EXCEPTION: main 01-09 05:53:12.263: E/AndroidRuntime(824): java.lang.RuntimeException: javax.mail.internet.ParseException 01-09 05:53:12.263: E/A
01-09 05:53:12.263: E/AndroidRuntime(824): FATAL EXCEPTION: main
01-09 05:53:12.263: E/AndroidRuntime(824): java.lang.RuntimeException: javax.mail.internet.ParseException
01-09 05:53:12.263: E/AndroidRuntime(824): at com.ssmobileproductions.catalogue.InvoiceOrder$1.onClick(InvoiceOrder.java:91)
01-09 05:53:12.263: E/AndroidRuntime(824): at android.view.View.performClick(View.java:2408)
01-09 05:53:12.263: E/AndroidRuntime(824): at android.view.View$PerformClick.run(View.java:8816)
01-09 05:53:12.263: E/AndroidRuntime(824): at android.os.Handler.handleCallback(Handler.java:587)
01-09 05:53:12.263: E/AndroidRuntime(824): at android.os.Handler.dispatchMessage(Handler.java:92)
01-09 05:53:12.263: E/AndroidRuntime(824): at android.os.Looper.loop(Looper.java:123)
01-09 05:53:12.263: E/AndroidRuntime(824): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-09 05:53:12.263: E/AndroidRuntime(824): at java.lang.reflect.Method.invokeNative(Native Method)
01-09 05:53:12.263: E/AndroidRuntime(824): at java.lang.reflect.Method.invoke(Method.java:521)
01-09 05:53:12.263: E/AndroidRuntime(824): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-09 05:53:12.263: E/AndroidRuntime(824): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-09 05:53:12.263: E/AndroidRuntime(824): at dalvik.system.NativeStart.main(Native Method)
01-09 05:53:12.263: E/AndroidRuntime(824): Caused by: javax.mail.internet.ParseException
01-09 05:53:12.263: E/AndroidRuntime(824): at javax.mail.internet.ContentType.<init>(ContentType.java:102)
01-09 05:53:12.263: E/AndroidRuntime(824): at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1291)
01-09 05:53:12.263: E/AndroidRuntime(824): at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2074)
01-09 05:53:12.263: E/AndroidRuntime(824): at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2042)
01-09 05:53:12.263: E/AndroidRuntime(824): at javax.mail.Transport.send(Transport.java:117)
01-09 05:53:12.263: E/AndroidRuntime(824): at com.ssmobileproductions.catalogue.InvoiceOrder$1.onClick(InvoiceOrder.java:86)
01-09 05:53:12.263: E/AndroidRuntime(824): ... 11 more
01-09 05:53:14.023: I/Process(824): Sending signal. PID: 824 SIG: 9
01-09 05:53:12.263:E/AndroidRuntime(824):致命异常:main
01-09 05:53:12.263:E/AndroidRuntime(824):java.lang.RuntimeException:javax.mail.internet.ParseException
01-09 05:53:12.263:E/AndroidRuntime(824):在com.ssmobileproductions.catalog.InvoiceOrder$1.onClick(InvoiceOrder.java:91)
01-09 05:53:12.263:E/AndroidRuntime(824):在android.view.view.performClick(view.java:2408)
01-09 05:53:12.263:E/AndroidRuntime(824):在android.view.view$PerformClick.run(view.java:8816)
01-09 05:53:12.263:E/AndroidRuntime(824):位于android.os.Handler.handleCallback(Handler.java:587)
01-09 05:53:12.263:E/AndroidRuntime(824):位于android.os.Handler.dispatchMessage(Handler.java:92)
01-09 05:53:12.263:E/AndroidRuntime(824):在android.os.Looper.loop(Looper.java:123)上
01-09 05:53:12.263:E/AndroidRuntime(824):位于android.app.ActivityThread.main(ActivityThread.java:4627)
01-09 05:53:12.263:E/AndroidRuntime(824):位于java.lang.reflect.Method.Invokenactive(本机方法)
01-09 05:53:12.263:E/AndroidRuntime(824):位于java.lang.reflect.Method.invoke(Method.java:521)
01-09 05:53:12.263:E/AndroidRuntime(824):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-09 05:53:12.263:E/AndroidRuntime(824):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-09 05:53:12.263:E/AndroidRuntime(824):在dalvik.system.NativeStart.main(本机方法)
01-09 05:53:12.263:E/AndroidRuntime(824):由javax.mail.internet.ParseException引起
01-09 05:53:12.263:E/AndroidRuntime(824):位于javax.mail.internet.ContentType.(ContentType.java:102)
01-09 05:53:12.263:E/AndroidRuntime(824):在javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1291)
01-09 05:53:12.263:E/AndroidRuntime(824):在javax.mail.internet.mimessage.updateHeaders(mimessage.java:2074)
01-09 05:53:12.263:E/AndroidRuntime(824):javax.mail.internet.mimessage.saveChanges(mimessage.java:2042)
01-09 05:53:12.263:E/AndroidRuntime(824):在javax.mail.Transport.send(Transport.java:117)
01-09 05:53:12.263:E/AndroidRuntime(824):在com.ssmobileproductions.catalog.InvoiceOrder$1.onClick(InvoiceOrder.java:86)
01-09 05:53:12.263:E/AndroidRuntime(824):。。。还有11个
01-09 05:53:14.023:I/进程(824):发送信号。PID:824信号:9
这是我的代码:
public class InvoiceOrder extends Activity {
String mGrandTotal;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.invoice);
Button login = (Button) findViewById(R.id.mBtnSubmit);
login.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xxxxxx@gmail.com","xxxxx");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("krishnaveni.veesxxman@mercuxxsxxryminds.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("mercy.krishnaxxxdsdveni@gmail.com"));
message.setSubject("Testing Subject");
// message.setContent("This is your product name : "+
// "Hi Krishna" +"<br></br>This is your price : "+ "Hi veni", "text/html; charset=utf-8");
for (int i = 0; i < Constants.mItem_Detail
.size(); i++) {
String title = Constants.mItem_Detail
.get(i).get(
SingleMenuItem.KEY_PNAME);
String qty = Constants.mItem_Detail.get(i)
.get(SingleMenuItem.KEY_QTY);
String cost = Constants.mItem_Detail.get(i)
.get(SingleMenuItem.KEY_PRICE);
String total = Constants.mItem_Detail
.get(i).get(
SingleMenuItem.KEY_TOTAL);
message.setContent("<tr>" + "<td>" + title
+ "</td><td>" + qty + " * " + cost
+ "</td>" + " = <td>" + total
+ " " + "</td></tr>", total);
}
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
});
公共类InvoiceOrder扩展活动{
字符串mGrandTotal;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.invoice);
按钮登录=(按钮)findviewbyd(R.id.mBtnSubmit);
login.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图arg0){
Properties props=新属性();
put(“mail.smtp.host”、“smtp.gmail.com”);
props.put(“mail.smtp.socketFactory.port”,“465”);
props.put(“mail.smtp.socketFactory.class”,
“javax.net.ssl.SSLSocketFactory”);
props.put(“mail.smtp.auth”,“true”);
props.put(“mail.smtp.port”,“465”);
Session Session=Session.getDefaultInstance(props,
新的javax.mail.Authenticator(){
受保护的密码身份验证getPasswordAuthentication(){
返回新密码身份验证(“xxxxxx@gmail.com“,”xxxxx“;
}
});
试一试{
Message Message=新的mimessage(会话);
message.setFrom(新的Internet地址(“krishnaveni。veesxxman@mercuxxsxxryminds.com"));
message.setRecipients(message.RecipientType.TO,
InternetAddress.parse(“mercy”。krishnaxxxdsdveni@gmail.com"));
message.setSubject(“测试主体”);
//message.setContent(“这是您的产品名称:”+
//“嗨,奎师那”+“
这是你的价格:“+”嗨,维尼”,“text/html;charset=utf-8”);
对于(int i=0;i
请帮助我。我的代码中有什么错误。为什么会出现上述错误。请给我一些解决错误的方法。您可以这样尝试
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"recipient@example.com"});
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();
}
String mailContent = "mailto:" + mailTo + "?subject=" + subject + "&body=" + body;
Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(mailContent));
startActivity(intent);
我认为这将对您有所帮助。根据Javadoc,您需要text/html
。在使用时,您需要在message.setContent();
处添加“text/html;charset==utf-8”
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"youremail@yahoo.com"});
email.putExtra(Intent.EXTRA_SUBJECT, "subject");
email.putExtra(Intent.EXTRA_TEXT, "message");
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Choose an Email client :"));
请注意,HTML不应包含
、
或
。Gmail将忽略它
message.setContent( "<tr>
<td>" + title + "</td>
<td>" + qty + "*" + cost+ "</td>
<td>" + "=" + total + "</td>
</tr>", "text/html;charset=utf-8");
message.setContent(“
“+标题+”
“+数量+”*“+成本+”
message.setContent( "<tr>
<td>" + title + "</td>
<td>" + qty + "*" + cost+ "</td>
<td>" + "=" + total + "</td>
</tr>", "text/html;charset=utf-8");
message.setRecipient(Message.RecipientType.TO, new InternetAddress(mercy.krishnaxxxdsdveni@gmail.com));