科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用J2ME实现简单电子邮件发送功能

用J2ME实现简单电子邮件发送功能

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在GCF中并没有提供给我们能够发送电子邮件的API,J2ME的可选包也没有提供相关的功能。那么我们能用J2ME实现发送电子邮件功能嘛?答案是肯定的。本文将主要讲述如何在J2ME中实现发送电子邮件的功能。

作者:Csdn 来源:Csdn 2007年9月4日

关键字: J2ME 电子邮件

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

这里一个非常重要的思想就是代理。我们知道GCF提供给我们进行联网的能力了,比如通过Http联网。在MIDP2.0中甚至提供了socket联网的API。那么我们可以通过他们连接服务器端的程序比如servlet,然后servlet可以通过JavaMail提供的接口发送邮件。那么我们需要做的只是通过Http协议或者其他协议把邮件的标题、内容、收件人等发送给servlet。就是这个简单的思想却是非常灵活非常有用。

首先我们构造一个Message类来代表发送的消息。它包括主题、收件人和内容三个字段。

package com.j2medev.mail;

public class Message

{    private String to;

private String subject;

private String content;

public Message()

{

}

public Message(String to, String subject, String content)

{

this.to = to;

this.subject = subject;

this.content = content;

}

public String getContent()

{

return content;

}

public void setContent(String content)

{

this.content = content;

}

public String getSubject()

{

return subject;

}

public void setSubject(String subject)

{

this.subject = subject;



public String getTo()

{

return to;

}

public void setTo(String to)

{

this.to = to;

}



public String toString()

{

return to+subject+content;

}

}

在用户界面的设计上,我们需要两个界面。一个让用户输入收件人和主题,另一个用于收集用户输入的内容。由于TextBox要独占一个屏幕的,因此我们不能把他们放在一起。

/*

* Created on 2004-12-8

*

* TODO To change the template for this generated file go to

* Window - Preferences - Java - Code Style - Code Templates

*/

package com.j2medev.mail;

import javax.microedition.lcdui.Form;

import javax.microedition.lcdui.Item;

import javax.microedition.lcdui.*;

import javax.microedition.midlet.MIDlet;

/**

* @author P2800

*

* TODO To change the template for this generated type comment go to Window -

* Preferences - Java - Code Style - Code Templates

*/

public class MainForm extends Form implements CommandListener

{

private MailClient midlet;

private TextField toField;

private TextField subField;   

private boolean first = true;

public static final Command nextCommand = new Command("NEXT", Command.OK, 1);

public MainForm(MailClient midlet, String arg0)

{

super(arg0);

this.midlet = midlet;

if(first)

{

first = false;

init();

}



}

public void init()

{

toField = new TextField("To:", null, 25, TextField.ANY);

subField = new TextField("Subject:", null, 30, TextField.ANY);

this.append(toField);

this.append(subField);

this.addCommand(nextCommand);

this.setCommandListener(this);       

}



public void commandAction(Command cmd,Displayable disp)

{

if(cmd == nextCommand)

{

String to = toField.getString();

String subject = subField.getString();

if(to == "" && subject == "")

{

midlet.displayAlert("Null to or sub",AlertType.WARNING,this);

}

else

{

midlet.getMessage().setTo(to);

midlet.getMessage().setSubject(subject);

midlet.getDisplay().setCurrent(midlet.getContentForm());

}

}

}

}

package com.j2medev.mail;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.TextBox;

import javax.microedition.midlet.MIDlet;

public class ContentForm extends TextBox implements CommandListener

{

private MailClient midlet;

private boolean first = true;

public static final Command sendCommand = new Command("SEND", Command.ITEM,

1);

public ContentForm(String arg0, String arg1, int arg2, int arg3,

MailClient midlet)

{

super(arg0, arg1, arg2, arg3);

this.midlet = midlet;

if (first)

{

first = false;

init();

}

}

public void init()

{

this.addCommand(sendCommand);

this.setCommandListener(this);

}

public void commandAction(Command cmd, Displayable disp)

{

if (cmd == sendCommand)

{

String content = this.getString();

midlet.getMessage().setContent(content);

System.out.println(midlet.getMessage());

try

{

synchronized (midlet)

{

midlet.notify();

}

} catch (Exception e)

{

}

}

}

}

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章