diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.gitignore" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.gitignore"
new file mode 100644
index 0000000..39fb081
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.gitignore"
@@ -0,0 +1,9 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
+.externalNativeBuild
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/compiler.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/compiler.xml"
new file mode 100644
index 0000000..96cc43e
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/compiler.xml"
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/copyright/profiles_settings.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/copyright/profiles_settings.xml"
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/copyright/profiles_settings.xml"
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/gradle.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/gradle.xml"
new file mode 100644
index 0000000..3343f6c
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/gradle.xml"
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/misc.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/misc.xml"
new file mode 100644
index 0000000..3be1ace
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/misc.xml"
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/modules.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/modules.xml"
new file mode 100644
index 0000000..33d4eed
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/modules.xml"
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/runConfigurations.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/runConfigurations.xml"
new file mode 100644
index 0000000..7f68460
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/.idea/runConfigurations.xml"
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/.gitignore" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/.gitignore"
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/.gitignore"
@@ -0,0 +1 @@
+/build
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/build.gradle" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/build.gradle"
new file mode 100644
index 0000000..b92f3a2
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/build.gradle"
@@ -0,0 +1,49 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 24
+ buildToolsVersion "25.0.2"
+ defaultConfig {
+ applicationId "com.hzu.feirty.tabmenu"
+ minSdkVersion 15
+ targetSdkVersion 24
+ versionCode 1
+ versionName "1.0"
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(include: ['*.jar'], dir: 'libs')
+ androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ exclude group: 'com.android.support', module: 'support-annotations'
+ })
+ compile 'com.android.support:appcompat-v7:24.2.1'
+ testCompile 'junit:junit:4.12'
+ compile files('libs/activation.jar')
+ compile files('libs/additionnal.jar')
+ compile files('libs/mail.jar')
+ compile 'org.greenrobot:eventbus:3.0.0'
+ compile 'com.android.support.test.espresso:espresso-core:2.2.2'
+ compile files('libs/android-async-http-1.4.6.jar')
+ compile files('libs/asmack-android-6.jar')
+ compile files('libs/gson-2.5.jar')
+ compile files('libs/httpclient-4.3.6.jar')
+ compile files('libs/jg_filter_sdk_1.1.jar')
+ compile files('libs/litepal-1.5.1-src.jar')
+ compile files('libs/mid-sdk-2.20.jar')
+ compile files('libs/MobLogCollector.jar')
+ compile files('libs/MobTools.jar')
+ compile files('libs/org.apache.http.legacy.jar')
+ compile files('libs/ShareSDK-Core-2.6.3.jar')
+ compile files('libs/SMSSDK-1.3.1.jar')
+ compile files('libs/wup-1.0.0-SNAPSHOT.jar')
+ compile files('libs/Xg_sdk_v2.39_20150915_1121.jar')
+ compile files('libs/commons-email-1.1.jar')
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/MobLogCollector.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/MobLogCollector.jar"
new file mode 100644
index 0000000..2d58998
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/MobLogCollector.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/MobTools.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/MobTools.jar"
new file mode 100644
index 0000000..1c02683
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/MobTools.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/SMSSDK-1.3.1.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/SMSSDK-1.3.1.jar"
new file mode 100644
index 0000000..6f4caec
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/SMSSDK-1.3.1.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/ShareSDK-Core-2.6.3.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/ShareSDK-Core-2.6.3.jar"
new file mode 100644
index 0000000..af6be88
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/ShareSDK-Core-2.6.3.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/Xg_sdk_v2.39_20150915_1121.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/Xg_sdk_v2.39_20150915_1121.jar"
new file mode 100644
index 0000000..3ad2ccc
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/Xg_sdk_v2.39_20150915_1121.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/activation.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/activation.jar"
new file mode 100644
index 0000000..614a03c
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/activation.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/additionnal.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/additionnal.jar"
new file mode 100644
index 0000000..aeb9611
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/additionnal.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/android-async-http-1.4.6.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/android-async-http-1.4.6.jar"
new file mode 100644
index 0000000..70391cb
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/android-async-http-1.4.6.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/asmack-android-6.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/asmack-android-6.jar"
new file mode 100644
index 0000000..cebab96
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/asmack-android-6.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1-javadoc.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1-javadoc.jar"
new file mode 100644
index 0000000..136818e
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1-javadoc.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1-sources.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1-sources.jar"
new file mode 100644
index 0000000..24043dd
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1-sources.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1.jar"
new file mode 100644
index 0000000..e984731
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/commons-email-1.1.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/gson-2.5.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/gson-2.5.jar"
new file mode 100644
index 0000000..5c35c5d
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/gson-2.5.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/httpclient-4.3.6.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/httpclient-4.3.6.jar"
new file mode 100644
index 0000000..35af4b1
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/httpclient-4.3.6.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/jg_filter_sdk_1.1.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/jg_filter_sdk_1.1.jar"
new file mode 100644
index 0000000..bba19c1
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/jg_filter_sdk_1.1.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/litepal-1.5.1-src.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/litepal-1.5.1-src.jar"
new file mode 100644
index 0000000..46d7f55
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/litepal-1.5.1-src.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/mail.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/mail.jar"
new file mode 100644
index 0000000..ea594fd
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/mail.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/mid-sdk-2.20.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/mid-sdk-2.20.jar"
new file mode 100644
index 0000000..8942d61
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/mid-sdk-2.20.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/org.apache.http.legacy.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/org.apache.http.legacy.jar"
new file mode 100644
index 0000000..5b89fbd
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/org.apache.http.legacy.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/wup-1.0.0-SNAPSHOT.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/wup-1.0.0-SNAPSHOT.jar"
new file mode 100644
index 0000000..93b8683
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/libs/wup-1.0.0-SNAPSHOT.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/proguard-rules.pro" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/proguard-rules.pro"
new file mode 100644
index 0000000..f2cc440
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/proguard-rules.pro"
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in G:\Android\sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/androidTest/java/com/hzu/feirty/MailIM/ExampleInstrumentedTest.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/androidTest/java/com/hzu/feirty/MailIM/ExampleInstrumentedTest.java"
new file mode 100644
index 0000000..e108fb4
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/androidTest/java/com/hzu/feirty/MailIM/ExampleInstrumentedTest.java"
@@ -0,0 +1,26 @@
+package com.hzu.feirty.MailIM;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumentation test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() throws Exception {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ assertEquals("com.hzu.feirty.tabmenu", appContext.getPackageName());
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/AndroidManifest.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/AndroidManifest.xml"
new file mode 100644
index 0000000..17958c0
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/AndroidManifest.xml"
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/ic_launcher-web.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/ic_launcher-web.png"
new file mode 100644
index 0000000..ed0032c
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/ic_launcher-web.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/CourseActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/CourseActivity.java"
new file mode 100644
index 0000000..ea4332f
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/CourseActivity.java"
@@ -0,0 +1,22 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+
+import com.hzu.feirty.MailIM.R;
+
+/**
+ * Created by Administrator on 2017-6-27.
+ */
+
+public class CourseActivity extends AppCompatActivity {
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_open);
+ android.support.v7.app.ActionBar actionBar = getSupportActionBar();
+ if(actionBar != null){
+ actionBar.setHomeButtonEnabled(true);
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/EditMailActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/EditMailActivity.java"
new file mode 100644
index 0000000..2e81453
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/EditMailActivity.java"
@@ -0,0 +1,254 @@
+
+package com.hzu.feirty.MailIM.activity;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.db.Email;
+import com.hzu.feirty.MailIM.entity.Ip;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+
+import org.apache.http.Header;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+
+public class EditMailActivity extends AppCompatActivity {
+
+ private static final String SMTPHOST = "smtphost";
+ private static final String USERNAME = "username";
+ private static final String PASSWORD = "password";
+ private String url = Ip.ip + "/MailIM/DoGetMail?";
+ private EditText et_addr, et_mailsubject, et_mailcontent;
+ private Button btn_cancel, btn_sent, btn_addattachment;
+ private ListView lv_mailattachment;
+ private int type;
+ private Email email;
+ private Handler handler;
+ private ArrayList attachments;
+ private MyAdapter adapter;
+ private Context context;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ context = this;
+ setContentView(R.layout.mailedit);
+ getExtra();
+ init();
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (requestCode == 1 && resultCode == 1 && data != null) {
+ String filepath = data.getStringExtra("FILEPATH");
+ if (filepath.length() > 0) {
+ lv_mailattachment.setVisibility(View.VISIBLE);
+ attachments.add(filepath);
+ adapter.notifyDataSetChanged();
+ }
+ }
+ }
+
+ private void init() {
+ et_addr = (EditText) findViewById(R.id.et_addr);
+ et_mailsubject = (EditText) findViewById(R.id.et_mailsubject);
+ et_mailcontent = (EditText) findViewById(R.id.et_mailcontent);
+
+ lv_mailattachment = (ListView) findViewById(R.id.lv_mailattachment);
+ btn_addattachment = (Button) findViewById(R.id.btn_addattachment);
+ btn_cancel = (Button) findViewById(R.id.btn_cancel);
+ btn_sent = (Button) findViewById(R.id.btn_sent);
+ btn_addattachment.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ startActivityForResult(new Intent(EditMailActivity.this, FileExplorerActivity.class), 1);
+ }
+ });
+ btn_cancel.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ EditMailActivity.this.finish();
+ }
+ });
+ btn_sent.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String to =et_addr.getText().toString();
+ String subject=et_mailsubject.getText().toString();
+ String content = et_mailcontent.getText().toString();
+ send(to,subject,content);
+ }
+ });
+ /*btn_sent.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ try {
+ Email email = new Email();
+ email.setTo(et_addr.getText().toString());
+ email.setSubject(et_mailsubject.getText().toString());
+ email.setContent(et_mailcontent.getText().toString());
+ email.setAttachments(attachments);
+
+ MailSenter mailSenter = new MailSenter(handler,
+ PreferencesUtil.getSharedStringData(context, SMTPHOST), PreferencesUtil.getSharedStringData(context,
+ USERNAME),
+ PreferencesUtil.getSharedStringData(context, PASSWORD));
+ handler.obtainMessage(0).sendToTarget();
+ mailSenter.send(email);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ });*/
+ handler = new MyHandler(this);
+ attachments = new ArrayList();
+ lv_mailattachment.setAdapter(adapter = new MyAdapter());
+ if (type == 1) {
+ et_addr.setText(email.getFrom());
+ et_mailsubject.setText("回复:" + email.getSubject());
+ } else if (type == 2) {
+ et_mailsubject.setText("转发:" + email.getSubject());
+ et_mailcontent.setText(email.getContent());
+ }
+ et_addr.setText("1050416617@qq.com");
+ et_mailsubject.setText("");
+ et_mailcontent.setText("");
+ }
+
+ private void getExtra() {
+ type = getIntent().getIntExtra("TYPE", 0);
+ email = (Email) getIntent().getSerializableExtra("EMAIL");
+ }
+
+ private class MyAdapter extends BaseAdapter {
+
+ @Override
+ public View getView(final int position, View convertView, ViewGroup parent) {
+ TextView tv = new TextView(EditMailActivity.this);
+ tv.setText(attachments.get(position).substring(attachments.get(position).lastIndexOf("/") +
+ 1));
+ tv.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ attachments.remove(position);
+ handler.obtainMessage(3).sendToTarget();
+ }
+ });
+ return tv;
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return attachments.get(position);
+ }
+
+ @Override
+ public int getCount() {
+ return attachments.size();
+ }
+ }
+
+ private static class MyHandler extends Handler {
+
+ private WeakReference wrActivity;
+ private ProgressDialog pd;
+
+ public MyHandler(EditMailActivity activity) {
+ this.wrActivity = new WeakReference(activity);
+ }
+
+ @Override
+ public void handleMessage(android.os.Message msg) {
+ final EditMailActivity activity = wrActivity.get();
+ switch (msg.what) {
+ case 0:
+ pd = ProgressDialog.show(activity.context, "发送邮件","正在发送....", true, false);
+ break;
+ case 1:
+ pd.dismiss();
+ Toast.makeText(activity.getApplicationContext(), "发送成功!",
+ Toast.LENGTH_LONG).show();
+ activity.finish();
+ break;
+ case 3:
+ activity.adapter.notifyDataSetChanged();
+ break;
+ default:
+ Toast.makeText(activity.context, "发送出现错误!", Toast.LENGTH_LONG).show();
+ break;
+ }
+ };
+ };
+
+ public void send(String to,String subject,String content){
+ RequestParams params = new RequestParams();
+ params.put("to", to);
+ params.put("subject", subject);
+ params.put("content",content);
+ params.put("action", "send");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url, params, new AsyncHttpResponseHandler(){
+ @Override
+ public void onSuccess(int i, Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ Toast.makeText(EditMailActivity.this, "发送成功!", Toast.LENGTH_LONG).show();
+ } else {
+ Toast.makeText(EditMailActivity.this, "发送失败!", Toast.LENGTH_LONG).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ // btn_send.setEnabled(true);
+ }
+ } else {
+ // btn_send.setEnabled(true);
+ }
+ }
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ //DialogView.dismiss();
+ //btn_send.setEnabled(true);
+ Toast.makeText(EditMailActivity.this, "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/FileExplorerActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/FileExplorerActivity.java"
new file mode 100644
index 0000000..df6e428
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/FileExplorerActivity.java"
@@ -0,0 +1,162 @@
+
+package com.hzu.feirty.MailIM.activity;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.Environment;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.hzu.feirty.MailIM.R;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+public class FileExplorerActivity extends Activity {
+
+ private ListView listview;
+ private List pathlist;
+ private String rootpath;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.explorer);
+
+ listview = (ListView) findViewById(R.id.files_listview);
+ boolean sdCardExist = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
+ if (sdCardExist) {
+ rootpath = Environment.getExternalStorageDirectory().toString();
+ }
+
+ getFileDir(rootpath);
+ listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> arg0, View arg1, int position, long arg3) {
+ File file = new File(pathlist.get(position));
+ if (file.isDirectory()) {
+ try {
+ getFileDir(file.getPath());
+ } catch (Exception e) {
+ getFileDir(file.getParent());
+ }
+ } else {
+ backToPreviousActivity(file.getPath().toLowerCase(Locale.CHINA));
+ }
+ }
+ });
+
+ }
+
+ /**
+
+ */
+ private void backToPreviousActivity(String result) {
+ setResult(1, new Intent().putExtra("FILEPATH", result));
+ finish();
+ }
+
+ /**
+
+ */
+ private void getFileDir(String filepath) {
+ ArrayList items = new ArrayList();
+ pathlist = new ArrayList();
+ File sfile = new File(filepath);
+
+ File[] files = sfile.listFiles();
+ for (File file : files) {
+ if (file.isDirectory()) {
+ items.add(0, file.getName());
+ pathlist.add(0, file.getPath());
+ } else {
+ items.add(file.getName());
+ pathlist.add(file.getPath());
+ }
+ }
+ if (!rootpath.equals(filepath)) {
+ items.add(0, "..");
+ pathlist.add(0, sfile.getParent());
+ }
+ listview.setAdapter(new FileAdapter(this, items, pathlist));
+ }
+
+ private class FileAdapter extends BaseAdapter {
+
+ private List filenames;
+ private List filepaths;
+ private Context context;
+
+ /**
+
+ */
+ public FileAdapter(Context context, List items, List pathlist) {
+ this.context = context;
+ this.filenames = items;
+ this.filepaths = pathlist;
+ }
+
+ @Override
+ public int getCount() {
+ return filenames.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return filenames.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ ViewHolder holder;
+ if (null == convertView) {
+ holder = new ViewHolder();
+ holder.nameView = new TextView(context);
+ holder.nameView.setGravity(Gravity.CENTER_VERTICAL);
+ holder.nameView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
+ convertView = holder.nameView;
+ convertView.setTag(holder);
+ } else {
+ holder = (ViewHolder) convertView.getTag();
+ }
+
+ File file = new File(filepaths.get(position).toString());
+ Drawable drawable;
+ if (filenames.get(position).toString().equals("..")) {
+ holder.nameView.setText("xxxx");
+ drawable = getResources().getDrawable(R.drawable.explorer_back);
+ } else {
+ if (file.isDirectory()) {
+ drawable = getResources().getDrawable(R.drawable.explorer_folder);
+ } else {
+ drawable = getResources().getDrawable(R.drawable.explorer_file);
+ }
+ holder.nameView.setText(file.getName());
+ }
+ drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
+ holder.nameView.setCompoundDrawables(drawable, null, null, null);
+ return convertView;
+ }
+
+ private class ViewHolder {
+ TextView nameView;
+ }
+ }
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/IdentityActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/IdentityActivity.java"
new file mode 100644
index 0000000..3793dc0
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/IdentityActivity.java"
@@ -0,0 +1,8 @@
+package com.hzu.feirty.MailIM.activity;
+
+/**
+ * Created by Administrator on 2017-6-27.
+ */
+
+public class IdentityActivity {
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/LoginActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/LoginActivity.java"
new file mode 100644
index 0000000..5b241d4
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/LoginActivity.java"
@@ -0,0 +1,241 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.entity.Ip;
+import com.hzu.feirty.MailIM.utils.CookieUtil;
+import com.hzu.feirty.MailIM.utils.FinalAsyncHttpClient;
+import com.hzu.feirty.MailIM.utils.PreferencesUtil;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.PersistentCookieStore;
+import com.loopj.android.http.RequestParams;
+import org.apache.http.cookie.Cookie;
+import org.json.JSONException;
+import org.json.JSONObject;
+import java.lang.ref.WeakReference;
+import java.util.List;
+
+
+public class LoginActivity extends AppCompatActivity {
+
+ private EditText et_un, et_pw; //账号密码输入框
+ private Button btn_login; //登陆按钮
+ private Button btn_register;
+ private CheckBox cb_saveuser, cb_autologin; //记住密码、自动登陆
+ private Context context;
+ private Handler handler; //Handler:接受子线程发送的数据, 并用此数据配合主线程更新UI
+ private Toolbar toolbar;
+ private MyApplication myapplication;
+ private static final String POP3HOST = "pop3host";
+ private static final String SMTPHOST = "smtphost";
+ private static final String SAVEUSER = "saveuser";
+ private static final String AUTOLOGIN = "autologin";
+ private static final String USERNAME = "username";
+ private static final String PASSWORD = "password";
+ private String url = Ip.ip + "/MailIM/DoGetUser?";
+ private String url2 = Ip.ip + "/MailIM/DoGetMail?";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.login);
+ //MyApplication myapplication = new MyApplication();
+ //myapplication.addActivity(this);
+ /* if (getSupportActionBar() != null){
+ getSupportActionBar().hide();
+ }*/
+ initView();
+ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ context = this;
+ handler = new MyHandler(this);
+ //判断自动登陆的历史操作
+ if (PreferencesUtil.getSharedBooleanData(context, AUTOLOGIN)) {
+ //TRUE则直接登陆
+ login();
+ } else {
+ //判断SVAEUSER的设置
+ if (PreferencesUtil.getSharedBooleanData(context, SAVEUSER)) {
+ //TRUE则将历史用户信息显示
+ //用户信息保存在PreferencesUtil()
+ cb_saveuser.setChecked(PreferencesUtil.getSharedBooleanData(context, SAVEUSER));
+ et_un.setText(PreferencesUtil.getSharedStringData(context, USERNAME));
+ et_pw.setText(PreferencesUtil.getSharedStringData(context, PASSWORD));
+ }
+ setListener(); //监听集合
+
+ }
+ }
+ //自动登陆Checkbox控件的监听
+ private void setListener() {
+ cb_autologin.setOnCheckedChangeListener(new OnCheckedChangeListener() {
+
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ cb_saveuser.setEnabled(!isChecked);
+ if (isChecked) {
+ cb_saveuser.setChecked(isChecked); //勾自动登陆的操作,同时勾上保存用户Checkbox
+ }
+ }
+ });
+ //登陆按钮的监听
+ btn_login.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) { //先判断输入合法性
+ if (TextUtils.isEmpty(et_un.getText()) || TextUtils.isEmpty(et_pw.getText())) {
+ Toast.makeText(getApplicationContext(), "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ //保存属性信息到PreferencesUtil.setSharedBooleanData()方法
+ PreferencesUtil.setSharedBooleanData(context, SAVEUSER, cb_saveuser.isChecked());
+ PreferencesUtil.setSharedBooleanData(context, AUTOLOGIN, cb_autologin.isChecked());
+ PreferencesUtil.setSharedStringData(context, USERNAME, et_un.getText().toString());
+ PreferencesUtil.setSharedStringData(context, PASSWORD, et_pw.getText().toString());
+ PreferencesUtil.setSharedStringData(context, POP3HOST,"pop.qq.com");
+ PreferencesUtil.setSharedStringData(context, SMTPHOST, "smtp.qq.com");
+ //PreferencesUtil.setSharedStringData(context, POP3HOST, ConnUtil.getPOP3Host(et_un.getText().toString()));
+ // PreferencesUtil.setSharedStringData(context, SMTPHOST, ConnUtil.getSMTPHost(et_un.getText().toString()));
+ //执行login()方法
+ login();
+ }
+ });
+ btn_register.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(context, RegisterActivity.class));
+ }
+ });
+ }
+
+ private void login() {
+ RequestParams params = new RequestParams();
+ params.put("user", et_un.getText().toString());
+ params.put("password", et_pw.getText().toString());
+ params.put("action", "login");
+ FinalAsyncHttpClient finalAsyncHttpClient = new FinalAsyncHttpClient();
+ AsyncHttpClient client = finalAsyncHttpClient.getAsyncHttpClient();
+ saveCookie(client);
+ PersistentCookieStore myCookieStore = new PersistentCookieStore(LoginActivity.this);
+ client.setCookieStore(myCookieStore);
+ client.post(url, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ CookieUtil.setCookies(getCookie());
+ Toast.makeText(LoginActivity.this, "登陆成功!", Toast.LENGTH_SHORT).show();
+ startActivity(new Intent(context, MainActivity.class));
+ } else {
+ btn_login.setEnabled(true);
+ Toast.makeText(LoginActivity.this, "账号或密码有误,请重新输入", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ btn_login.setEnabled(true);
+ }
+ } else {
+ btn_login.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ //DialogView.dismiss();
+ btn_login.setEnabled(true);
+ Toast.makeText(LoginActivity.this, "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+
+ }
+ });
+ /*//子线程处理
+ new Thread(new Runnable() {
+ @Override
+ //PreferencesUtil() 用户设置有关信息保存提取JAVABEAN类
+ //ConnUtil() 邮箱发送的有关信息保存提取JAVABEAN类和邮箱协议的连接方法
+ public void run() {
+ //调用ConnUtil中的login()方法,设置pop3host和邮箱地址、登陆密码 :pop3用于邮件接收的协议
+ Store store = ConnUtil.login(PreferencesUtil.getSharedStringData(context, POP3HOST), PreferencesUtil.getSharedStringData(context, USERNAME),
+ PreferencesUtil.getSharedStringData(context, PASSWORD));
+ if (store != null) {
+ //调用成功,保存store
+ //((MailApplication) getApplication()).setStore(store);
+ ((MailApplication)context.getApplicationContext()).setStore(store);
+ MailApplication a=new MailApplication();
+ a.setStore(store);
+ //跳转到HomeActivity
+ startActivity(new Intent(context, MainActivity.class));
+ finish();
+ } else {
+ //不成功显示提示信息
+ handler.obtainMessage(0).sendToTarget();
+ }
+ }
+ }).start();*/
+ }
+ //控件定义方法
+ private void initView() {
+ et_un = (EditText) findViewById(R.id.et_un);
+ et_pw = (EditText) findViewById(R.id.et_pw);
+ btn_login = (Button) findViewById(R.id.btn_login);
+ btn_register = (Button) findViewById(R.id.btn_register);
+ cb_saveuser = (CheckBox) findViewById(R.id.cb_savepw);
+ cb_autologin = (CheckBox) findViewById(R.id.cb_autologin);
+ }
+ //接受子线程发送的数据, 并用此数据配合主线程更新UI
+ private static class MyHandler extends Handler {
+
+ private WeakReference wrActivity;
+
+ public MyHandler(LoginActivity activity) {
+ this.wrActivity = new WeakReference(activity);
+ }
+
+ @Override
+ public void handleMessage(android.os.Message msg) {
+ final LoginActivity activity = wrActivity.get();
+ switch (msg.what) {
+ case 0:
+ Toast.makeText(activity.getApplicationContext(), "用户名或密码不正确", Toast.LENGTH_SHORT).show();
+ break;
+ case 1:
+ break;
+ default:
+ break;
+ }
+ };
+ };
+
+ protected void saveCookie(AsyncHttpClient client) {
+ PersistentCookieStore cookieStore = new PersistentCookieStore(this);
+ client.setCookieStore(cookieStore);
+ }
+
+ protected List getCookie(){
+ PersistentCookieStore cookieStore = new PersistentCookieStore(this);
+ List cookies = cookieStore.getCookies();
+ return cookies;
+ }
+
+ public void clearCookie(){
+ PersistentCookieStore cookieStore = new PersistentCookieStore(this);
+ cookieStore.clear();
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MailApplication.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MailApplication.java"
new file mode 100644
index 0000000..2a6b503
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MailApplication.java"
@@ -0,0 +1,43 @@
+
+package com.hzu.feirty.MailIM.activity;
+
+import android.app.Application;
+import android.content.Context;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+
+import javax.mail.Store;
+
+public class MailApplication extends Application {
+ private static Context mContext;
+ private Store store;
+ private ArrayList attachmentsInputStreams;
+ public void onCreate(){
+ super.onCreate();
+ mContext=getApplicationContext();
+ }
+ public Store getStore() {
+ return store;
+ }
+
+ public void setStore(Store store) {
+ this.store = store;
+ }
+
+ public ArrayList getAttachmentsInputStreams() {
+ return attachmentsInputStreams;
+ }
+
+ public void setAttachmentsInputStreams(ArrayList attachmentsInputStreams) {
+ this.attachmentsInputStreams = attachmentsInputStreams;
+ }
+
+ public static Context getmContext(){
+ return mContext;
+ }
+ public void onLowMemory(){
+ super.onLowMemory();
+ }
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MailContentActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MailContentActivity.java"
new file mode 100644
index 0000000..f7e3a1e
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MailContentActivity.java"
@@ -0,0 +1,66 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v7.app.AppCompatActivity;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.db.Email;
+import java.io.InputStream;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+
+public class MailContentActivity extends AppCompatActivity {
+
+ private TextView tv_addr, tv_mailsubject, tv_mailcontent;
+ private ListView lv_mailattachment;
+ private ArrayList attachmentsInputStreams;
+ private Email email;
+ private Handler handler;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.mailcontent);
+ email = (Email) getIntent().getSerializableExtra("EMAIL");
+ attachmentsInputStreams = ((MailApplication) getApplication()).getAttachmentsInputStreams();
+ init();
+ }
+ private void init() {
+ handler = new MyHandler(this);
+ tv_addr = (TextView) findViewById(R.id.tv_addr);
+ tv_mailsubject = (TextView) findViewById(R.id.tv_mailsubject);
+ tv_mailcontent = (TextView) findViewById(R.id.tv_mailcontent);
+/* if (email.getAttachments().size() > 0) {
+ lv_mailattachment = (ListView) findViewById(R.id.lv_mailattachment);
+ lv_mailattachment.setVisibility(View.VISIBLE);
+ lv_mailattachment.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, email.getAttachments()));
+ }*/
+ tv_addr.setText(email.getFrom());
+ tv_mailsubject.setText(email.getSubject());
+ tv_mailcontent.setText(email.getContent());
+ }
+
+ private static class MyHandler extends Handler {
+
+ private WeakReference wrActivity;
+
+ public MyHandler(MailContentActivity activity) {
+ this.wrActivity = new WeakReference(activity);
+ }
+
+ @Override
+ public void handleMessage(android.os.Message msg) {
+ final MailContentActivity activity = wrActivity.get();
+ switch (msg.what) {
+ case 0:
+ Toast.makeText(activity.getApplicationContext(), msg.obj.toString(), Toast.LENGTH_SHORT).show();
+ break;
+ default:
+ break;
+ }
+ }
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MainActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MainActivity.java"
new file mode 100644
index 0000000..fc6c1b4
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MainActivity.java"
@@ -0,0 +1,140 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.Window;
+import android.view.animation.AnimationUtils;
+import android.widget.RadioGroup;
+import android.widget.RadioGroup.OnCheckedChangeListener;
+import android.widget.TabHost;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+
+public class MainActivity extends AppCompatActivity {
+ // tab用参数
+ private TabHost tabHost;
+ private long exitTime = 0;
+ private RadioGroup radiogroup;
+ private int menuid;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ getSupportActionBar().setTitle("收发作业");
+ radiogroup = (RadioGroup) findViewById(R.id.radiogroup);
+ tabHost = (TabHost) findViewById(android.R.id.tabhost);
+ tabHost.setup();
+ tabHost.addTab(tabHost.newTabSpec("main").setIndicator("main")
+ .setContent(R.id.fragment_main));
+ tabHost.addTab(tabHost.newTabSpec("mycenter").setIndicator("mycenter")
+ .setContent(R.id.fragment_mycenter));
+ tabHost.addTab(tabHost.newTabSpec("search").setIndicator("search")
+ .setContent(R.id.fragment_search));
+ radiogroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
+
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ menuid = checkedId;
+ int currentTab = tabHost.getCurrentTab();
+ switch (checkedId) {
+ case R.id.radio_main:
+ tabHost.setCurrentTabByTag("main");
+ //如果需要动画效果就使用
+ setCurrentTabWithAnim(currentTab, 0, "main");
+ getSupportActionBar().setTitle("收发作业");
+ break;
+ case R.id.radio_mycenter:
+ //tabHost.setCurrentTabByTag("mycenter");
+ setCurrentTabWithAnim(currentTab, 1, "mycenter");
+ getSupportActionBar().setTitle("个人中心");
+
+ break;
+ case R.id.radio_search:
+ tabHost.setCurrentTabByTag("search");
+ getSupportActionBar().setTitle("发现");
+ }
+ // 刷新actionbar的menu
+ getWindow().invalidatePanelMenu(Window.FEATURE_OPTIONS_PANEL);
+ }
+ });
+
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+
+ switch (menuid) {
+ case R.id.radio_main:
+ getMenuInflater().inflate(R.menu.main, menu);
+ break;
+ case R.id.radio_mycenter:
+ menu.clear();
+ break;
+ case R.id.radio_search:
+ menu.clear();
+ break;
+ }
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+ if (id == R.id.action_settings) {
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ // 这个方法是关键,用来判断动画滑动的方向
+ private void setCurrentTabWithAnim(int now, int next, String tag) {
+ if (now > next) {
+ tabHost.getCurrentView().startAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));
+ tabHost.setCurrentTabByTag(tag);
+ tabHost.getCurrentView().startAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));
+ } else {
+ tabHost.getCurrentView().startAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
+ tabHost.setCurrentTabByTag(tag);
+ tabHost.getCurrentView().startAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
+ }
+ }
+/* @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if(keyCode == KeyEvent.KEYCODE_BACK){
+ long firstClickBack=System.currentTimeMillis();
+ long secondClickBack = System.currentTimeMillis();
+ if(secondClickBack - firstClickBack >1500){
+ Toast.makeText(this, "再按一次退出每一天", Toast.LENGTH_SHORT).show();
+ firstClickBack = secondClickBack;
+ return true;
+ }else{
+ MyApplication.getInstance().exitApp();
+ return true;
+ }
+ }
+ return super.onKeyDown(keyCode, event);
+ }*/
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
+ if((System.currentTimeMillis()-exitTime) > 2000){
+ Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
+ exitTime = System.currentTimeMillis();
+ } else {
+ //MyApplication.getInstance().exitApp();
+ finish();
+ System.exit(0);
+ }
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MainFragment.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MainFragment.java"
new file mode 100644
index 0000000..242e1c7
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MainFragment.java"
@@ -0,0 +1,342 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.Intent;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.app.Fragment;
+import android.support.v7.app.AppCompatActivity;
+import android.view.LayoutInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ListView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+import android.support.v7.widget.Toolbar;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.db.Email;
+import com.hzu.feirty.MailIM.entity.Ip;
+import com.hzu.feirty.MailIM.utils.IdentityReceiver;
+import com.hzu.feirty.MailIM.utils.MailReceiver;
+import com.hzu.feirty.MailIM.utils.PreferencesUtil;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.InputStream;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class MainFragment extends Fragment{
+ //邮箱的接收数据集合
+ private ArrayList mailslist = new ArrayList();
+ private List list;
+ private ProgressDialog pd;
+ private String url = Ip.ip + "/MailIM/DoGetMail?";
+ private String url3 = Ip.ip + "/MailIM/DoGetType?";
+ private ArrayList> attachmentsInputStreamsList = new ArrayList>();
+ private Context context;
+ private String type="INBOX";
+ private SQLiteDatabase db;
+ private Toolbar toolbar;
+ //适配器接口;连接后端数据和前端显示的适配器接口
+ private MyAdapter myAdapter;
+ //显示列表
+ private ListView lv_box;
+ //接收子线程的数据
+ private Handler handler;
+ //邮件接收数据数组
+ private List mailReceivers;
+ //进度条控件
+ private ProgressBar pb_box;
+ private IdentityReceiver mReceiver;
+ private static final String IDENTITY = "saveidentity";
+ private static final String USERNAME = "username";
+ private static final String PASSWORD = "password";
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ // TODO Auto-generated method stub
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view= inflater.inflate(R.layout.fragment_main, null);
+ return view;
+ }
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ context = MainFragment.this.getActivity();
+ pb_box = (ProgressBar) getActivity().findViewById(R.id.pb_box);
+ lv_box = (ListView) getActivity().findViewById(R.id.lv_box);
+ toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
+ AppCompatActivity activity = (AppCompatActivity) getActivity();
+ //activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ if (activity.getSupportActionBar() != null){
+ activity.getSupportActionBar().hide();
+ }
+ toolbar.setTitle("首页");
+ toolbar.inflateMenu(R.menu.base_toolbar_menu);//设置右上角的填充菜单
+ toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.action_insert:
+ isType();
+ break;
+ }
+ return true;
+ }
+ });
+ myAdapter = new MyAdapter();
+ lv_box.setAdapter(myAdapter);
+ handler = new MyHandler(MainFragment.this);
+ isType();
+ /*if(str.equals("老师")||str.equals("学生")) {
+ receiveEmail();*/
+ /*//子线程处理
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ //MailHelper() 邮件接收功能操作方法,返回所有邮件接收的内容集合
+ mailReceivers = MailHelper.getInstance(context).getMailByTeacher(type);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ getMailsList(mailReceivers);
+ handler.obtainMessage(1).sendToTarget();
+ }
+ }).start();*/
+ /*}else if(str.equals("学生")){
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ //MailHelper() 邮件接收功能操作方法,返回所有邮件接收的内容集合
+ mailReceivers = MailHelper.getInstance(context).getMailByStudent(type);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ getMailsList(mailReceivers);
+ handler.obtainMessage(1).sendToTarget();
+ }
+ }).start();
+ }else{
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ //MailHelper() 邮件接收功能操作方法,返回所有邮件接收的内容集合
+ mailReceivers = MailHelper.getInstance(context).getStudentId(type);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ getMailsList(mailReceivers);
+ handler.obtainMessage(1).sendToTarget();
+ }
+ }).start();
+ }*/
+ }
+ /**
+ * 将序列化的对象赋给email ,再将email加到mailslist集合中
+ * @param
+ */
+ /*private void getMailsList(List mails) {
+ if(mails!=null) {
+ for (MailReceiver mailReceiver : mails) {
+ Email email = new Email();
+ try {
+ email.setMessageID(mailReceiver.getMessageID());
+ email.setFrom(mailReceiver.getFrom());
+ email.setTo(mailReceiver.getMailAddress("TO"));
+ email.setCc(mailReceiver.getMailAddress("CC"));
+ email.setBcc(mailReceiver.getMailAddress("BCC"));
+ email.setSubject(mailReceiver.getSubject());
+ email.setSentdata(mailReceiver.getSentData());
+ email.setContent(mailReceiver.getMailContent());
+ email.setReplysign(mailReceiver.getReplySign());
+ email.setHtml(mailReceiver.isHtml());
+ email.setNews(mailReceiver.isNew());
+ email.setAttachments(mailReceiver.getAttachments());
+ email.setCharset(mailReceiver.getCharset());
+ //保存每个邮件的信息到mailslist
+ attachmentsInputStreamsList.add(0, mailReceiver.getAttachmentsInputStreams());
+ //list.add(0,email);
+ mailslist.add(0, email);
+ handler.obtainMessage(0).sendToTarget();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }*/
+
+ private class MyAdapter extends BaseAdapter {
+
+ @Override
+ public int getCount() {
+ return mailslist.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return mailslist.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+ @Override
+ public View getView(final int position, View convertView, ViewGroup parent) {
+ convertView = LayoutInflater.from(context).inflate(R.layout.mailbox_item, null);
+ TextView tv_sentdate = (TextView) convertView.findViewById(R.id.tv_sentdate);
+ TextView tv_new = (TextView) convertView.findViewById(R.id.tv_new);
+ TextView tv_subject = (TextView) convertView.findViewById(R.id.tv_subject);
+ tv_sentdate.setText(mailslist.get(position).getSentdata());
+ if (mailslist.get(position).isNews()) {
+ tv_new.setVisibility(View.VISIBLE);
+ }
+ tv_subject.setText(mailslist.get(position).getSubject());
+ //点击List的监听
+ convertView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //((MailApplication)getActivity().getApplication()).setAttachmentsInputStreams(attachmentsInputStreamsList.get(position));
+ final Intent intent = new Intent(getActivity(), MailContentActivity.class).putExtra("EMAIL", mailslist.get(position));
+ startActivity(intent);
+ }
+ });
+ return convertView;
+ }
+
+ }
+ private static class MyHandler extends Handler {
+
+ private WeakReference wrActivity;
+
+ public MyHandler(MainFragment activity) {
+ this.wrActivity = new WeakReference(activity);
+ }
+ @Override
+ public void handleMessage(android.os.Message msg) {
+ final MainFragment activity = wrActivity.get();
+ switch (msg.what) {
+ case 0:
+ activity.myAdapter.notifyDataSetChanged();
+ break;
+ case 1:
+ activity.pb_box.setVisibility(View.GONE);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ public void receiveEmail() {
+ RequestParams params = new RequestParams();
+ String user =PreferencesUtil.getSharedStringData(MainFragment.this.getActivity(),USERNAME);
+ params.put("user", user);
+ params.put("action", "receive");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(10000);
+ pd= ProgressDialog.show(MainFragment.this.getActivity(),null, "搜索作业中…");
+ client.post(url, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ //handler.obtainMessage(0).sendToTarget();
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ JSONArray array = object.getJSONArray("data");
+ for (int a = 0; a < array.length(); a++) {
+ JSONObject item = array.getJSONObject(a);
+ Email mail = new Email();
+ mail.setFrom(item.getString("from"));
+ mail.setSubject(item.getString("subject"));
+ mail.setContent(item.getString("content"));
+ mail.setSentdata(item.getString("time"));
+ //mail.setAttachments(object.getJSONArray("attachment"));
+ mailslist.add(0,mail);
+ }
+ handler.obtainMessage(1).sendToTarget();
+ pd.dismiss();
+ Toast.makeText(MainFragment.this.getActivity(),"接收成功",Toast.LENGTH_SHORT).show();
+ } else {
+ // btn_login.setEnabled(true);
+ Toast.makeText(MainFragment.this.getActivity(),"接收失败",Toast.LENGTH_SHORT).show();
+ pd.dismiss();
+
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ // btn_login.setEnabled(true);
+ }
+ } else {
+ // btn_login.setEnabled(true);
+ }
+ }
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ //DialogView.dismiss();
+ //btn_login.setEnabled(true);
+ pd.dismiss();
+ Toast.makeText(MainFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+
+ }
+ });
+ }
+
+ private void isType(){
+ RequestParams params = new RequestParams();
+ params.put("action", "istype");
+ String user =PreferencesUtil.getSharedStringData(MainFragment.this.getActivity(),"username");
+ params.put("user", user);
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url3, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("teacher")) {
+ Toast.makeText(MainFragment.this.getActivity(), "欢迎老师", Toast.LENGTH_SHORT).show();
+ receiveEmail();
+ } else if(object.getString("code").equals("student")){
+ Toast.makeText(MainFragment.this.getActivity(), "欢迎学生", Toast.LENGTH_SHORT).show();
+ receiveEmail();
+ }
+ else {
+ // btn_login.setEnabled(true);
+ Toast.makeText(MainFragment.this.getActivity(), "请先选择身份", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ Toast.makeText(MainFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MyApplication.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MyApplication.java"
new file mode 100644
index 0000000..d88abb0
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MyApplication.java"
@@ -0,0 +1,43 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.app.Activity;
+import android.support.v7.app.AppCompatActivity;
+
+import java.util.ArrayList;
+
+/**
+ * Created by Administrator on 2017-7-19.
+ */
+
+public class MyApplication extends AppCompatActivity{
+ public static ArrayList list;
+ private static MyApplication myApp = null;
+
+ //要保证每个Activity中使用的MyApplication都是同一个,就用到了单例模式
+ //单例模式:只有一个对象,也就是上面的那个myApp只实例化一次
+ //由于MyApplication继承自Application,复写的构造函数访问权限不能低于父类的,所以不能为private
+ //所以我们在这里实现一个伪单例模式
+ public static MyApplication getInstance(){
+ if(myApp == null ){
+ myApp = new MyApplication();
+ list = new ArrayList();
+ }
+ return myApp;
+ }
+ /**
+ * 添加activity到数组中
+ * @param activity
+ */
+ public void addActivity(Activity activity){
+ list.add(activity);
+ }
+
+ /**
+ * 退出应用,结束所有activity
+ */
+ public void exitApp(){
+ for (Activity activity : list) {
+ activity.finish();
+ }
+ }
+ }
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MyCenterFragment.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MyCenterFragment.java"
new file mode 100644
index 0000000..2806362
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/MyCenterFragment.java"
@@ -0,0 +1,429 @@
+package com.hzu.feirty.MailIM.activity;
+import android.app.Activity;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.support.v4.app.Fragment;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.db.Email;
+import com.hzu.feirty.MailIM.entity.Ip;
+import com.hzu.feirty.MailIM.utils.PreferencesUtil;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+
+
+public class MyCenterFragment extends Fragment {
+ private TextView my_context;
+ private TextView my_works;
+ private TextView my_teachers;
+ private ProgressDialog pd;
+ private Toolbar toolbar;
+ private LinearLayout setting;
+ private ArrayList mails = new ArrayList();
+ private static final String PWD="teacher_pwd";
+ private LinearLayout ll_1;
+ private LinearLayout identity;
+ private LinearLayout receivework;
+ private LinearLayout checkwork;
+ final String items[] = { "学生","老师"};
+ private static final String IDENTITY = "saveidentity";
+ private static final String ISNULL= "isnull";
+ private String url = Ip.ip + "/MailIM/DoGetUser?";
+ private String url2 = Ip.ip + "/MailIM/DoGetMail?";
+ private String url3 = Ip.ip + "/MailIM/DoGetType?";
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ // TODO Auto-generated method stub
+ super.onCreate(savedInstanceState);
+ }
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view= inflater.inflate(R.layout.fragment_mycenter, null);
+ return view;
+ }
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ my_context = (TextView) getActivity().findViewById(R.id.my_context);
+ ll_1 = (LinearLayout) getActivity().findViewById(R.id.ll_1);
+ identity = (LinearLayout) getActivity().findViewById(R.id.identity);
+ receivework = (LinearLayout) getActivity().findViewById(R.id.receivework);
+ checkwork = (LinearLayout) getActivity().findViewById(R.id.checkwork);
+ setting = (LinearLayout) getActivity().findViewById(R.id.setting);
+ toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
+ AppCompatActivity activity = (AppCompatActivity) getActivity();
+ //activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ if (activity.getSupportActionBar() != null){
+ activity.getSupportActionBar().hide();
+ }
+ ll_1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(getActivity(),CourseActivity.class);
+ startActivity(intent);
+ }
+ });
+ setting.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ isType();
+ }
+ });
+ checkwork.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //receiveEmail();
+ }
+ });
+ receivework.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Dialog dialog=new AlertDialog.Builder(MyCenterFragment.this.getActivity())
+ .setTitle("提示")
+ //.setIcon(R.drawable.ic_launcher)
+ .setMessage("确认收作业吗?")
+ //相当于点击确认按钮
+ .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ pd = ProgressDialog.show(MyCenterFragment.this.getActivity(), null, "正在打包发送…");
+ receiveHomework();
+ }
+ })
+ //相当于点击取消按钮
+ .setNegativeButton("取消", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ // TODO Auto-generated method stub
+
+ }
+ })
+ .create();
+ dialog.show();
+ /*pd= ProgressDialog.show(MyCenterFragment.this.getActivity(), "收作业", "正在打包发送…");
+ handler.sendEmptyMessage(0);*/
+
+
+ }
+ });
+ identity.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ setType();
+ }
+ });
+ }
+ private Handler handler =new Handler(){
+ @Override
+ //当有消息发送出来的时候就执行Handler的这个方法
+ public void handleMessage(Message msg){
+ super.handleMessage(msg);
+ //只要执行到这里就关闭对话框
+ pd.dismiss();
+ }
+ };
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+ }
+ public void receiveEmail() {
+ RequestParams params = new RequestParams();
+ params.put("user", "abc");
+ params.put("action", "receive");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ JSONArray array = object.getJSONArray("data");
+ for (int a = 0; a < array.length(); a++) {
+ JSONObject item = array.getJSONObject(a);
+ Email mail = new Email();
+ mail.setFrom(item.getString("from"));
+ mail.setSubject(item.getString("subject"));
+ mail.setContent(item.getString("content"));
+ mail.setSentdata(item.getString("time"));
+ //mail.setAttachments(object.getJSONArray("attachment"));
+ mails.add(0,mail);
+ }
+ Toast.makeText(MyCenterFragment.this.getActivity(),"接收成功",Toast.LENGTH_SHORT).show();
+ } else {
+ // btn_login.setEnabled(true);
+ Toast.makeText(MyCenterFragment.this.getActivity(),"接收失败",Toast.LENGTH_SHORT).show();
+
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+
+ }
+ });
+ }
+ private void downlode(){
+ RequestParams params = new RequestParams();
+ params.put("action", "receive2");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url2, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "下载成功!", Toast.LENGTH_SHORT).show();
+ } else {
+ // btn_login.setEnabled(true);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "下载失败!", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ //DialogView.dismiss();
+ //btn_login.setEnabled(true);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+ private void number(){
+ RequestParams params = new RequestParams();
+ String user =PreferencesUtil.getSharedStringData(MyCenterFragment.this.getActivity(),"username");
+ params.put("user", user);
+ params.put("action", "number");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url2, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "添加成功!", Toast.LENGTH_SHORT).show();
+
+ } else {
+ // btn_login.setEnabled(true);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "添加失败!", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+ private void receiveHomework(){
+ RequestParams params = new RequestParams();
+ String user =PreferencesUtil.getSharedStringData(MyCenterFragment.this.getActivity(),"username");
+ params.put("user", user);
+ params.put("action", "RECEIVEHOMEWORK");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(10000);
+ //receiveHomework();
+ client.post(url2, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if(object.getString("code").equals("noidentry")){
+ handler.sendEmptyMessage(0);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "不允许非教师操作", Toast.LENGTH_SHORT).show();
+ }else if(object.getString("code").equals("nomail")){
+ handler.sendEmptyMessage(0);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "请先设置工作邮箱", Toast.LENGTH_SHORT).show();
+ }else {
+ if (object.getString("code").equals("success")) {
+ handler.sendEmptyMessage(0);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "收作业成功,请及时查收工作邮箱", Toast.LENGTH_SHORT).show();
+ } else {
+ handler.sendEmptyMessage(0);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "未知错误!", Toast.LENGTH_SHORT).show();
+ }
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ //DialogView.dismiss();
+ //btn_login.setEnabled(true);
+ handler.sendEmptyMessage(0);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+ private void isType(){
+ RequestParams params = new RequestParams();
+ params.put("action", "istype");
+ String user =PreferencesUtil.getSharedStringData(MyCenterFragment.this.getActivity(),"username");
+ params.put("user", user);
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url3, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("teacher")) {
+ Intent intent = new Intent(getActivity(),TeacherSetActivity.class);
+ startActivity(intent);
+
+ } else if(object.getString("code").equals("student")){
+ Intent intent = new Intent(getActivity(),StudentSetActivity.class);
+ startActivity(intent);
+ }
+ else {
+ // btn_login.setEnabled(true);
+ Toast.makeText(MyCenterFragment.this.getActivity(), "请先选择身份", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+ private void setType(){
+ RequestParams params = new RequestParams();
+ params.put("action", "settype");
+ String user =PreferencesUtil.getSharedStringData(MyCenterFragment.this.getActivity(),"username");
+ params.put("user", user);
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url3, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "你已选择身份", Toast.LENGTH_SHORT).show();
+ } else if(object.getString("code").equals("false")){
+ final AlertDialog.Builder builder = new AlertDialog.Builder(MyCenterFragment.this.getActivity());
+ builder.setTitle("选择身份");
+ //builder.setIcon(android.R.drawable.ic_dialog_info);
+ builder.setItems(items, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // TODO Auto-generated method stub
+ String select_item = items[which].toString();
+ if(select_item.equals("学生")) {
+ setType2("student");
+ }else{
+ setType2("teacher");
+ }
+ }
+ });
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ }
+ else {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "未知错误", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+ private void setType2(String type){
+ RequestParams params = new RequestParams();
+ params.put("action", "settype2");
+ String user =PreferencesUtil.getSharedStringData(MyCenterFragment.this.getActivity(),"username");
+ params.put("user", user);
+ params.put("type",type);
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url3, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "设置成功", Toast.LENGTH_SHORT).show();
+ } else if(object.getString("code").equals("false")){
+ Toast.makeText(MyCenterFragment.this.getActivity(), "设置失败", Toast.LENGTH_SHORT).show();
+ }
+ else {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "未知错误", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ Toast.makeText(MyCenterFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/RegisterActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/RegisterActivity.java"
new file mode 100644
index 0000000..1106f77
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/RegisterActivity.java"
@@ -0,0 +1,93 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.entity.Ip;
+import com.hzu.feirty.MailIM.utils.ToastUtil;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ * Created by Administrator on 2017-7-1.
+ */
+
+public class RegisterActivity extends AppCompatActivity {
+ private EditText username;
+ private EditText pwd;
+ private EditText pwd1;
+ private Button btn_register;
+ private String url = Ip.ip + "/MailIM/DoGetUser?";
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_register);
+ username = (EditText) findViewById(R.id.et_username);
+ pwd = (EditText) findViewById(R.id.et_pwd);
+ pwd1 = (EditText) findViewById(R.id.et_pwd1);
+ btn_register = (Button) findViewById(R.id.btn_register);
+ btn_register.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String user = username.getText().toString();
+ String password = pwd.getText().toString();
+ String pwd = pwd1.getText().toString();
+ if (user.equals("") || password.equals("")) {
+ ToastUtil.show(RegisterActivity.this, "用户名或密码不能为空");
+ return;
+ }else if(!pwd.equals(password)){
+ ToastUtil.show(RegisterActivity.this, "前后密码不一致");
+ return;
+ }
+ btn_register.setEnabled(false);
+ Register(user, password);
+ }
+ });
+ }
+ private void Register(String user, String password) {
+ RequestParams params = new RequestParams();
+ params.put("user", user);
+ params.put("password", password);
+ params.put("action", "save");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ Toast.makeText(RegisterActivity.this, "注册成功!", Toast.LENGTH_SHORT).show();
+ } else {
+ btn_register.setEnabled(true);
+ Toast.makeText(RegisterActivity.this, "注册失败!", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ btn_register.setEnabled(true);
+ }
+ } else {
+ btn_register.setEnabled(true);
+ }
+ }
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ //DialogView.dismiss();
+ btn_register.setEnabled(true);
+ Toast.makeText(RegisterActivity.this, "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+}
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/SearchFragment.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/SearchFragment.java"
new file mode 100644
index 0000000..3d80fa9
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/SearchFragment.java"
@@ -0,0 +1,91 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.entity.Ip;
+import com.hzu.feirty.MailIM.utils.PreferencesUtil;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+public class SearchFragment extends Fragment {
+ private LinearLayout send;
+ private Toolbar toolbar;
+ private static final String IDENTITY = "saveidentity";
+ private String url3 = Ip.ip + "/MailIM/DoGetType?";
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ // TODO Auto-generated method stub
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View view= inflater.inflate(R.layout.fragment_search, null);
+ return view;
+ }
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ send = (LinearLayout) getActivity().findViewById(R.id.send);
+ toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
+ AppCompatActivity activity = (AppCompatActivity) getActivity();
+ //activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ if (activity.getSupportActionBar() != null){
+ activity.getSupportActionBar().hide();
+ }
+ send.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ isType();
+ }
+ });
+ }
+
+ private void isType(){
+ RequestParams params = new RequestParams();
+ params.put("action", "istype");
+ String user =PreferencesUtil.getSharedStringData(SearchFragment.this.getActivity(),"username");
+ params.put("user", user);
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url3, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("teacher")) {
+ Intent intent = new Intent(getActivity(), EditMailActivity.class);
+ startActivity(intent);
+
+ } else if(object.getString("code").equals("student")){
+ Toast.makeText(SearchFragment.this.getActivity(),"不允许学生操作",Toast.LENGTH_LONG).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ } else {
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ Toast.makeText(SearchFragment.this.getActivity(), "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/StudentSetActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/StudentSetActivity.java"
new file mode 100644
index 0000000..c3a5d28
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/StudentSetActivity.java"
@@ -0,0 +1,100 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.entity.Ip;
+import com.hzu.feirty.MailIM.utils.PreferencesUtil;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ * Created by Administrator on 2017-6-27.
+ */
+
+public class StudentSetActivity extends AppCompatActivity {
+ private EditText et_school;
+ private EditText et_teacher;
+ private EditText et_number;
+ private EditText et_stu_email;
+ private Button btn_ok;
+ private static final String MAIL = "mail";
+ private static final String PASSWORD = "password";
+ private String url = Ip.ip + "/MailIM/DoGetStudent?";
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_stu_set);
+ et_school = (EditText) findViewById(R.id.et_school);
+ et_teacher = (EditText) findViewById(R.id.et_teacher);
+ et_number = (EditText) findViewById(R.id.et_number);
+ et_stu_email = (EditText) findViewById(R.id.et_stu_email);
+ btn_ok = (Button) findViewById(R.id.btn_stu_ok);
+
+ btn_ok.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String teacher = et_teacher.getText().toString();
+ String school = et_school.getText().toString();
+ String mail = et_stu_email.getText().toString();
+ String number = et_number.getText().toString();
+ saveSet(teacher,school,mail,number);
+ }
+ });
+ }
+
+ public void saveSet(String teacher,String school,String mail,String number){
+ RequestParams params = new RequestParams();
+ params.put("teacher",teacher);
+ params.put("school",school);
+ params.put("mail",mail);
+ params.put("number",number);
+ String user =PreferencesUtil.getSharedStringData(StudentSetActivity.this,"username");
+ params.put("user", user);
+ params.put("action", "SAVESET");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ /* String tea_mail =object.getString("mail");
+ String pwd = object.getString("pwd");
+ PreferencesUtil.setSharedStringData(StudentSetActivity.this, MAIL, tea_mail);
+ PreferencesUtil.setSharedStringData(StudentSetActivity.this, PASSWORD, pwd);
+ Store store = ConnUtil.login("pop.qq.com",tea_mail,pwd);*/
+ Toast.makeText(StudentSetActivity.this, "验证成功!", Toast.LENGTH_SHORT).show();
+ btn_ok.setEnabled(false);
+ } else {
+ // btn_login.setEnabled(true);
+ Toast.makeText(StudentSetActivity.this, "未找到相关信息!", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ // btn_login.setEnabled(true);
+ }
+ } else {
+ // btn_login.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ //DialogView.dismiss();
+ Toast.makeText(StudentSetActivity.this, "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/TaskActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/TaskActivity.java"
new file mode 100644
index 0000000..6e520ed
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/TaskActivity.java"
@@ -0,0 +1,8 @@
+package com.hzu.feirty.MailIM.activity;
+
+/**
+ * Created by Administrator on 2017-6-27.
+ */
+
+public class TaskActivity {
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/TeacherSetActivity.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/TeacherSetActivity.java"
new file mode 100644
index 0000000..d017e1f
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/activity/TeacherSetActivity.java"
@@ -0,0 +1,102 @@
+package com.hzu.feirty.MailIM.activity;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.hzu.feirty.MailIM.R;
+import com.hzu.feirty.MailIM.entity.Ip;
+import com.hzu.feirty.MailIM.utils.ConnUtil;
+import com.hzu.feirty.MailIM.utils.PreferencesUtil;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import javax.mail.Store;
+
+/**
+ * Created by Administrator on 2017-6-27.
+ */
+
+public class TeacherSetActivity extends AppCompatActivity{
+ private EditText et_name;
+ private EditText et_school;
+ private EditText et_workmail;
+ private EditText et_mail_pwd;
+ private EditText et_peasonmail;
+ private Button btn_ok;
+ private String url = Ip.ip + "/MailIM/DoGetTeacher?";
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_tea_set);
+ et_name = (EditText) findViewById(R.id.et_name);
+ et_school = (EditText) findViewById(R.id.et_school);
+ et_workmail = (EditText) findViewById(R.id.et_work_email);
+ et_mail_pwd = (EditText) findViewById(R.id.et_email_pwd);
+ et_peasonmail = (EditText) findViewById(R.id.et_peason_email);
+ btn_ok = (Button) findViewById(R.id.btn_tea_ok);
+ btn_ok.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String name = et_name.getText().toString();
+ String school = et_school.getText().toString();
+ String workmail = et_workmail.getText().toString();
+ String peasonmail = et_peasonmail.getText().toString();
+ String pwd = et_mail_pwd.getText().toString();
+ Store store = ConnUtil.login("pop.qq.com",workmail,pwd);
+ if(store!=null) {
+ saveSet(name, school, workmail, pwd, peasonmail);
+ }else{
+ Toast.makeText(TeacherSetActivity.this, "邮箱账号密码验证不符", Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+ }
+ public void saveSet(String name,String school,String workmail,String pwd,String peasonmail){
+ RequestParams params = new RequestParams();
+ params.put("name",name );
+ params.put("school",school);
+ params.put("workmail",workmail);
+ params.put("pwd",pwd);
+ params.put("peasonmail",peasonmail);
+ params.put("action", "SAVESET");
+ AsyncHttpClient client = new AsyncHttpClient();
+ client.setConnectTimeout(5000);
+ client.post(url, params, new AsyncHttpResponseHandler() {
+ @Override
+ public void onSuccess(int i, org.apache.http.Header[] headers, byte[] responseBody) {
+ String str = new String(responseBody);
+ if (str != null) {
+ try {
+ JSONObject object = new JSONObject(str);
+ if (object.getString("code").equals("success")) {
+ Toast.makeText(TeacherSetActivity.this, "验证成功,学号信息上传成功!", Toast.LENGTH_SHORT).show();
+ PreferencesUtil.setSharedBooleanData(TeacherSetActivity.this, "WORKMAIL", true);
+ btn_ok.setEnabled(false);
+ } else {
+ // btn_login.setEnabled(true);
+ Toast.makeText(TeacherSetActivity.this, "未搜索到学号信息!", Toast.LENGTH_SHORT).show();
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ // btn_login.setEnabled(true);
+ }
+ } else {
+ // btn_login.setEnabled(true);
+ }
+ }
+
+ @Override
+ public void onFailure(int i, org.apache.http.Header[] headers, byte[] bytes, Throwable throwable) {
+ //DialogView.dismiss();
+ Toast.makeText(TeacherSetActivity.this, "网络连接失败,请查看网络设置", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/db/Email.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/db/Email.java"
new file mode 100644
index 0000000..bab1cc7
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/db/Email.java"
@@ -0,0 +1,140 @@
+/**
+ *Email()类实现Email属性的封装
+ * 包括属性:
+ * --messageID--email的ID,--from--发件地址,--to--收件人地址,--cc--抄送地址,---bcc--密送地址
+ * --subject--邮件主题,--sentdata--发送的内容,--content--内容
+ * --boolean类型:--replysign-- --html--- ---news--
+ * --attachments--字符串数组
+ */
+
+package com.hzu.feirty.MailIM.db;
+
+import android.provider.ContactsContract;
+import java.io.Serializable;
+import java.util.ArrayList;
+
+public class Email implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private String messageID;
+ private ContactsContract.Data publishDate;
+ private String from;
+ private String to;
+ private String cc;
+ private String bcc;
+ private String subject;
+ private String sentdata;
+ private String content;
+ private boolean replysign;
+ private boolean html;
+ private boolean news;
+ private ArrayList attachments;
+ private String charset;
+ public ContactsContract.Data getPublishDate(){
+ return publishDate;
+ }
+ public String getMessageID() {
+ return messageID;
+ }
+
+ public void setMessageID(String messageID) {
+ this.messageID = messageID;
+ }
+
+ public String getFrom() {
+ return from;
+ }
+
+ public void setFrom(String from) {
+ this.from = from;
+ }
+
+ public String getTo() {
+ return to;
+ }
+
+ public void setTo(String to) {
+ this.to = to;
+ }
+
+ public String getCc() {
+ return cc;
+ }
+
+ public void setCc(String cc) {
+ this.cc = cc;
+ }
+
+ public String getBcc() {
+ return bcc;
+ }
+
+ public void setBcc(String bcc) {
+ this.bcc = bcc;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public String getSentdata() {
+ return sentdata;
+ }
+
+ public void setSentdata(String sentdata) {
+ this.sentdata = sentdata;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public boolean isReplysign() {
+ return replysign;
+ }
+
+ public void setReplysign(boolean replysign) {
+ this.replysign = replysign;
+ }
+
+ public boolean isHtml() {
+ return html;
+ }
+
+ public void setHtml(boolean html) {
+ this.html = html;
+ }
+
+ public boolean isNews() {
+ return news;
+ }
+
+ public void setNews(boolean news) {
+ this.news = news;
+ }
+
+ public String getCharset() {
+ return charset;
+ }
+
+ public void setCharset(String charset) {
+ this.charset = charset;
+ }
+
+ public ArrayList getAttachments() {
+ return attachments;
+ }
+
+ public void setAttachments(ArrayList attachments) {
+ this.attachments = attachments;
+ }
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/db/Student.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/db/Student.java"
new file mode 100644
index 0000000..0a022cb
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/db/Student.java"
@@ -0,0 +1,34 @@
+package com.hzu.feirty.MailIM.db;
+
+/**
+ * Created by Administrator on 2017-6-24.
+ */
+
+public class Student {
+ private String number;
+ private Long id;
+ public String getNumber(){
+ return number;
+ }
+ public void setNumber(String number){
+ this.number = number;
+ }
+ public long getId(){
+ return id;
+ }
+ public void setId(long id){
+ this.id= id;
+ }
+ public Student(Long id, String number){
+ super();
+ this.id=id;
+ this.number= number;
+ }
+ public Student(String number){
+ super();
+ this.number= number;
+ }
+ public Student(){
+ super();
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/entity/Ip.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/entity/Ip.java"
new file mode 100644
index 0000000..e713ada
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/entity/Ip.java"
@@ -0,0 +1,10 @@
+package com.hzu.feirty.MailIM.entity;
+/**
+ * Created by Administrator on 2017-6-30.
+ */
+public class Ip {
+ //public static final String ip = "http://192.168.1.188:8080";
+ //public static final String ip = "http://115.29.105.161";
+ public static final String ip = "http://192.168.43.7:8080";
+ //public static final String ip = "http://192.168.1.108:8080";
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/ConnUtil.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/ConnUtil.java"
new file mode 100644
index 0000000..866b375
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/ConnUtil.java"
@@ -0,0 +1,68 @@
+
+package com.hzu.feirty.MailIM.utils;
+
+import java.util.Properties;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Store;
+
+//连接邮件服务器邮件接收util类
+public class ConnUtil {
+ private static Store store = null;
+ public static Store login(String host, String user, String password) {
+ // 连接服务器
+ Properties props = System.getProperties();
+ Session session = Session.getDefaultInstance(props);
+ try {
+ // 准备连接服务器的会话信息
+ /* Properties props = System.getProperties();
+ props.setProperty("mail.store.protocol", "pop");
+ props.setProperty("mail.imap.host", "imap.qq.com");
+ props.setProperty("mail.imap.port", "143");
+ */
+ /** QQ邮箱需要建立ssl连接 */
+ props.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+ props.setProperty("mail.pop3.socketFactory.fallback", "false");
+ props.setProperty("mail.pop3.starttls.enable","true");
+ props.setProperty("mail.pop3.port", "995");
+ props.setProperty("mail.pop3.socketFactory.port", "995");
+ // 创建Session实例对象
+ // Session session = Session.getInstance(props); //pop3/smtp :jwovgwaypwrebecd
+ store = session.getStore("pop3");
+ store.connect(host, user, password);
+ }
+ catch (MessagingException e) {
+ e.printStackTrace();
+ return null;
+ }
+ return store;
+ }
+
+ public static String getPOP3Host(String user) {
+ if (user.contains("qq")) {
+ return "pop.qq.com";
+ }
+ if (user.contains("163")) {
+ return "pop.163.com";
+ }
+ if (user.contains("126")) {
+ return "pop.126.com";
+ }else
+ return null;
+ }
+
+ public static String getSMTPHost(String user) {
+ if (user.contains("qq")) {
+ return "smtp.qq.com";
+ }
+ if (user.contains("163")) {
+ return "smtp.163.com";
+ }
+ if (user.contains("126")) {
+ return "smtp.126.com";
+ } else {
+ return null;
+ }
+ }
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/CookieUtil.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/CookieUtil.java"
new file mode 100644
index 0000000..c9b8956
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/CookieUtil.java"
@@ -0,0 +1,22 @@
+package com.hzu.feirty.MailIM.utils;
+
+import org.apache.http.cookie.Cookie;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Created by Administrator on 2017-7-4.
+ */
+
+public class CookieUtil {
+ private static List cookies;
+ public static List getCookies() {
+ return cookies != null ? cookies : new ArrayList();
+ }
+
+ public static void setCookies(List cookies) {
+ CookieUtil.cookies = cookies;
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/FinalAsyncHttpClient.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/FinalAsyncHttpClient.java"
new file mode 100644
index 0000000..becc2b2
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/FinalAsyncHttpClient.java"
@@ -0,0 +1,25 @@
+package com.hzu.feirty.MailIM.utils;
+
+import org.apache.http.cookie.Cookie;
+import org.apache.http.impl.client.BasicCookieStore;
+import com.loopj.android.http.AsyncHttpClient;
+
+public class FinalAsyncHttpClient {
+
+ AsyncHttpClient client;
+
+ public FinalAsyncHttpClient() {
+ client = new AsyncHttpClient();
+ client.setConnectTimeout(5);//5s超时
+ if (CookieUtil.getCookies() != null) {//每次请求都要带上cookie
+ BasicCookieStore bcs = new BasicCookieStore();
+ bcs.addCookies(CookieUtil.getCookies().toArray(
+ new Cookie[CookieUtil.getCookies().size()]));
+ client.setCookieStore(bcs);
+ }
+ }
+ public AsyncHttpClient getAsyncHttpClient(){
+ return this.client;
+ }
+}
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/IOUtil.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/IOUtil.java"
new file mode 100644
index 0000000..10904cd
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/IOUtil.java"
@@ -0,0 +1,157 @@
+
+package com.hzu.feirty.MailIM.utils;
+
+import com.hzu.feirty.MailIM.activity.MailApplication;
+import com.hzu.feirty.MailIM.db.Student;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+/**
+
+ */
+public class IOUtil {
+ private static final String PWD="teacher_pwd";
+
+ /**
+
+ */
+ public String stream2file(InputStream source, String targetPath) {
+ File target = new File(targetPath);
+ BufferedInputStream inBuff = null;
+ BufferedOutputStream outBuff = null;
+ try {
+ if (!target.exists()) {
+ String dir = targetPath.substring(0, targetPath.lastIndexOf("/"));
+ new File(dir).mkdirs();
+ try {
+ target.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ inBuff = new BufferedInputStream(source);
+ outBuff = new BufferedOutputStream(new FileOutputStream(target));
+ byte[] b = new byte[1024 * 5];
+ int len;
+ while ((len = inBuff.read(b)) != -1) {
+ outBuff.write(b, 0, len);
+ }
+ outBuff.flush();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (inBuff != null) {
+ inBuff.close();
+ }
+ if (outBuff != null) {
+ outBuff.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (target.length() > 0) {
+ return target.getAbsolutePath();
+ } else {
+ target.delete();
+ return null;
+ }
+ }
+
+ /**
+
+ */
+ public InputStream Byte2InputStream(byte[] data) {
+ ByteArrayInputStream bais = new ByteArrayInputStream(data);
+ return bais;
+ }
+
+ /**
+
+ */
+ public byte[] InputStream2Bytes(InputStream is) {
+ String str = "";
+ byte[] readByte = new byte[1024];
+ try {
+ while (is.read(readByte, 0, 1024) != -1) {
+ str += new String(readByte).trim();
+ }
+ return str.getBytes();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static byte[] getFileBytes(File file) throws IOException {
+ BufferedInputStream bis = null;
+ try {
+ bis = new BufferedInputStream(new FileInputStream(file));
+ int bytes = (int) file.length();
+ byte[] buffer = new byte[bytes];
+ int readBytes = bis.read(buffer);
+ if (readBytes != buffer.length) {
+ throw new IOException("Entire file not read");
+ }
+ return buffer;
+ } finally {
+ if (bis != null) {
+ bis.close();
+ }
+ }
+ }
+ public static void Txt(String path) {
+ try {
+ String str = "";
+ String str1 = "";
+ FileInputStream fis = new FileInputStream(path);// FileInputStream
+ // 从文件系统中的某个文件中获取字节
+ InputStreamReader isr = new InputStreamReader(fis);
+ BufferedReader br = new BufferedReader(isr);
+ while ((str = br.readLine()) != null) {
+ str1 = str;
+ Student student = new Student();
+ student.setNumber(str1);
+ new StudentDao(MailApplication.getmContext()).insert(student);
+ }
+ fis.close();
+ isr.close();
+ br.close();
+
+ } catch (FileNotFoundException e) {
+
+ } catch (IOException e) {
+ }
+ }
+ public static void Txt2(String path) {
+ try {
+ String str = "";
+ String str1 = "";
+ FileInputStream fis = new FileInputStream(path);// FileInputStream
+ // 从文件系统中的某个文件中获取字节
+ InputStreamReader isr = new InputStreamReader(fis);
+ BufferedReader br = new BufferedReader(isr);
+ while ((str = br.readLine()) != null) {
+ str1 = str;
+ PreferencesUtil.setSharedStringData(MailApplication.getmContext(),PWD,str1);
+ }
+ fis.close();
+ isr.close();
+ br.close();
+
+ } catch (FileNotFoundException e) {
+
+ } catch (IOException e) {
+ }
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/IdentityReceiver.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/IdentityReceiver.java"
new file mode 100644
index 0000000..9459693
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/IdentityReceiver.java"
@@ -0,0 +1,25 @@
+package com.hzu.feirty.MailIM.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.widget.Toast;
+
+/**
+ * Created by Administrator on 2017-6-28.
+ */
+
+public class IdentityReceiver extends BroadcastReceiver {
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) {
+ boolean isIdentity = NetUtil.isIdentity(context);
+ if (isIdentity) {
+ Toast.makeText(context, "已经设置身份", Toast.LENGTH_LONG).show();
+ } else {
+ Toast.makeText(context, "还没设置身份", Toast.LENGTH_LONG).show();
+ }
+ }
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailHelper.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailHelper.java"
new file mode 100644
index 0000000..2eaaa15
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailHelper.java"
@@ -0,0 +1,249 @@
+
+package com.hzu.feirty.MailIM.utils;
+
+import android.content.Context;
+import android.os.Environment;
+
+import com.hzu.feirty.MailIM.activity.MailApplication;
+import com.hzu.feirty.MailIM.db.Student;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.mail.Folder;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Store;
+import javax.mail.internet.MimeMessage;
+
+
+public class MailHelper {
+
+ private static MailHelper instance;
+ private List mailList;
+ private HashMap serviceHashMap;
+ private ArrayList attachmentsInputStreams;
+ private static final String IDENTITY = "saveidentity";
+ private Context context;
+ private Student student=null;
+ private StudentDao studao=null;
+
+ public static MailHelper getInstance(Context context) {
+ if (instance == null) {
+ instance = new MailHelper(context);
+ }
+ return instance;
+ }
+
+ /**
+ * 构造函数
+ *
+ */
+ private MailHelper(Context context) {
+ this.context = context;
+ }
+
+ public String getUpdateUrlStr() throws Exception {
+ String urlStr = null;
+ if (serviceHashMap == null) {
+ serviceHashMap = this.getServeHashMap();
+ }
+ if (serviceHashMap.get("update") == 1) {
+ urlStr = mailList.get(1).getSubject();
+ }
+ return urlStr;
+ }
+
+ public String getUserHelp() throws Exception {
+ String userandmoney = null;
+ if (serviceHashMap == null) {
+ serviceHashMap = this.getServeHashMap();
+ }
+ if (serviceHashMap.get("userhelp") == 1) {
+ userandmoney = mailList.get(3).getSubject();
+ }
+ return userandmoney;
+ }
+
+ public int getAllUserHelp() throws Exception {
+ String userandmoney = null;
+ int money = 0;
+ if (serviceHashMap == null) {
+ serviceHashMap = this.getServeHashMap();
+ }
+ if (serviceHashMap.get("userhelp") == 1) {
+ userandmoney = mailList.get(3).getSubject();
+ }
+ if (userandmoney != null && userandmoney.contains("all-user-100")) {
+ money = Integer.parseInt(userandmoney.substring(userandmoney.lastIndexOf("-" + 1),
+ userandmoney.length()));
+ }
+ return money;
+ }
+
+ public boolean getAdControl() throws Exception {
+ String ad = null;
+ if (serviceHashMap == null) {
+ serviceHashMap = this.getServeHashMap();
+ }
+ if (serviceHashMap.get("adcontrol") == 1) {
+ ad = mailList.get(2).getSubject();
+ }
+ if (ad.equals("ad=close")) {
+ return false;
+ }
+ return true;
+ }
+
+ public HashMap getServeHashMap() throws Exception {
+ serviceHashMap = new HashMap();
+ if (mailList == null) {
+ mailList = getMailByTeacher("INBOX");
+ }
+ String serviceStr = mailList.get(0).getSubject();
+ if (serviceStr.contains("update 1.0=true")) {
+ serviceHashMap.put("update", 1);
+ } else if (serviceStr.contains("update 1.0=false")) {
+ serviceHashMap.put("update", 0);
+ }
+ if (serviceStr.contains("adcontrol 1.0=true")) {
+ serviceHashMap.put("adcontrol", 1);
+ } else if (serviceStr.contains("adcontrol 1.0=false")) {
+ serviceHashMap.put("adcontrol", 0);
+ }
+ if (serviceStr.contains("userhelp 1.0=true")) {
+ serviceHashMap.put("userhelp", 1);
+ } else if (serviceStr.contains("userhelp 1.0=false")) {
+ serviceHashMap.put("userhelp", 0);
+ }
+ return serviceHashMap;
+ }
+
+ /**
+ * 取得所有的邮件
+ *
+ * @param folderName 文件夹名,例:收件箱是"INBOX"
+ * @return List 放有ReciveMail对象的List
+ * @throws MessagingException
+ */
+ /**
+ *学号收集类
+ *
+ */
+ public List getStudentId(String folderName) throws Exception {
+ List mailList = new ArrayList();
+ // 连接服务器
+ Store store = ((MailApplication) context.getApplicationContext()).getStore();
+ // 打开文件夹
+ Folder folder = store.getFolder(folderName);
+ folder.open(Folder.READ_ONLY);
+ // 总的邮件数
+ int mailCount = folder.getMessageCount();
+ if (mailCount == 0) {
+ folder.close(true);
+ store.close();
+ return null;
+ } else {
+ // 取得所有的邮件
+ Message[] messages = folder.getMessages();
+ for ( int i = 0; i < messages.length; i++) {
+ MailReceiver reciveMail = new MailReceiver((MimeMessage) messages[i]);
+ if (reciveMail.getSubject().equals("学号")){
+ if (reciveMail.isContainAttach(messages[i])) {
+ reciveMail.getMailContent();
+ attachmentsInputStreams = reciveMail.getAttachmentsInputStreams();
+ if (attachmentsInputStreams != null) {
+ InputStream is = attachmentsInputStreams.get(0);
+ new IOUtil().stream2file(is, Environment.getExternalStorageDirectory().toString() + "/temp/" + reciveMail.getAttachments().get(0));
+ IOUtil.Txt(Environment.getExternalStorageDirectory().toString() + "/temp/" + reciveMail.getAttachments().get(0));
+ }
+ }
+ }else if(reciveMail.getSubject().equals("密码")){
+ if (reciveMail.isContainAttach(messages[i])) {
+ reciveMail.getMailContent();
+ attachmentsInputStreams = reciveMail.getAttachmentsInputStreams();
+ if (attachmentsInputStreams != null) {
+ InputStream is = attachmentsInputStreams.get(0);
+ new IOUtil().stream2file(is, Environment.getExternalStorageDirectory().toString() + "/temp/" + reciveMail.getAttachments().get(0));
+ IOUtil.Txt2(Environment.getExternalStorageDirectory().toString() + "/temp/" + reciveMail.getAttachments().get(0));
+ }
+ }
+ }
+
+ }
+ store.close();
+ return null;
+ }
+ }
+ /**
+ *教师邮件方法
+ **
+ **
+ */
+ public List getMailByTeacher(String folderName) throws Exception {
+ List mailList = new ArrayList();
+ // 连接服务器
+ Store store = ((MailApplication) context.getApplicationContext()).getStore();
+ // 打开文件夹
+ Folder folder = store.getFolder(folderName);
+ folder.open(Folder.READ_ONLY);
+ // 总的邮件数
+ int mailCount = folder.getMessageCount();
+ if (mailCount == 0) {
+ folder.close(true);
+ store.close();
+ return null;
+ } else {
+ // 取得所有的邮件
+ Message[] messages = folder.getMessages();
+ for ( int i = 0; i < messages.length; i++) {
+ MailReceiver reciveMail = new MailReceiver((MimeMessage) messages[i]);
+ if(reciveMail.getSubject().contains("[布置作业]")||reciveMail.getSubject().contains("[作业]")){
+ if (reciveMail.isContainAttach(messages[i])) {
+ reciveMail.getMailContent();
+ attachmentsInputStreams = reciveMail.getAttachmentsInputStreams();
+ if (attachmentsInputStreams != null) {
+ InputStream is = attachmentsInputStreams.get(0);
+ new IOUtil().stream2file(is, Environment.getExternalStorageDirectory().toString() + "/temp/" + reciveMail.getAttachments().get(0));
+ }
+ }
+ mailList.add(reciveMail);// 添加到邮件列表中
+ }
+ }
+ }
+ return mailList;
+ }
+ /**
+ *学生邮件方法
+ **
+ **
+ */
+ public List getMailByStudent(String folderName) throws Exception {
+ List mailList = new ArrayList();
+ // 连接服务器
+ Store store = ((MailApplication) context.getApplicationContext()).getStore();
+ // 打开文件夹
+ Folder folder = store.getFolder(folderName);
+ folder.open(Folder.READ_ONLY);
+ // 总的邮件数
+ int mailCount = folder.getMessageCount();
+ if (mailCount == 0) {
+ folder.close(true);
+ store.close();
+ return null;
+ } else {
+ // 取得所有的邮件
+ Message[] messages = folder.getMessages();
+ for ( int i = 0; i < messages.length; i++) {
+ MailReceiver reciveMail = new MailReceiver((MimeMessage) messages[i]);
+ if(reciveMail.getSubject().contains("[布置作业]")||reciveMail.getSubject().contains("[作业]")){
+ mailList.add(reciveMail);// 添加到邮件列表中
+ }
+ }
+ }
+ return mailList;
+ }
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailReceiver.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailReceiver.java"
new file mode 100644
index 0000000..9f9414a
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailReceiver.java"
@@ -0,0 +1,496 @@
+/**
+ * 邮件信息解析类
+ * @return 序列化的对象
+ */
+
+package com.hzu.feirty.MailIM.utils;
+
+import com.hzu.feirty.MailIM.db.Student;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Locale;
+
+import javax.mail.BodyPart;
+import javax.mail.Flags;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Multipart;
+import javax.mail.Part;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeUtility;
+import javax.mail.util.ByteArrayDataSource;
+
+public class MailReceiver implements Serializable {
+ private Student student;
+ private StudentDao studao ;
+ private static final long serialVersionUID = 1L;
+ private MimeMessage mimeMessage = null;
+ private StringBuffer mailContent = new StringBuffer();// 邮件内容
+ private String dataFormat = "yyyy-MM-dd HH:mm:ss";
+ private String charset;
+ private boolean html;
+ private String saveAttachPath = "/temp";// 附件下载后的存放目录
+ private StringBuffer bodytext = new StringBuffer();
+ // 存放邮件内容的StringBuffer对象
+ private String dateformat = "yy-MM-dd HH:mm";// 默认的日前显示格式
+ private ArrayList attachments = new ArrayList();
+ private ArrayList attachmentsInputStreams = new ArrayList();
+
+ public MailReceiver(MimeMessage mimeMessage) {
+ this.mimeMessage = mimeMessage;
+ try {
+ charset = parseCharset(mimeMessage.getContentType());
+ } catch (MessagingException e) {
+ e.printStackTrace();
+ }
+ }
+ public ArrayList getInputStream(){
+ return attachmentsInputStreams;
+ }
+
+ /**
+ * 获得送信人的姓名和邮件地址
+ *
+ * @throws Exception
+ */
+ public String getFrom() throws Exception {
+ InternetAddress address[] = (InternetAddress[]) mimeMessage.getFrom();
+ String addr = address[0].getAddress();
+ String name = address[0].getPersonal();
+ if (addr == null) {
+ addr = "";
+ }
+ if (name == null) {
+ name = "";
+ } else if (charset == null) {
+ name = TranCharset.TranEncodeTOGB(name);
+ }
+ String nameAddr = name + "<" + addr + ">";
+ return nameAddr;
+ }
+
+ /**
+ * 根据类型,获取邮件地址 "TO"--收件人地址 "CC"--抄送人地址 "BCC"--密送人地址
+ *
+ * @throws Exception
+ */
+ public String getMailAddress(String type) throws Exception {
+ String mailAddr = "";
+ String addType = type.toUpperCase(Locale.CHINA);
+ InternetAddress[] address = null;
+ if (addType.equals("TO")) {
+ address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.TO);
+ } else if (addType.equals("CC")) {
+ address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.CC);
+ } else if (addType.equals("BCC")) {
+ address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.BCC);
+ } else {
+ System.out.println("error type!");
+ throw new Exception("Error emailaddr type!");
+ }
+ if (address != null) {
+ for (int i = 0; i < address.length; i++) {
+ String mailaddress = address[i].getAddress();
+ if (mailaddress != null) {
+ mailaddress = MimeUtility.decodeText(mailaddress);
+ } else {
+ mailaddress = "";
+ }
+ String name = address[i].getPersonal();
+ if (name != null) {
+ name = MimeUtility.decodeText(name);
+ } else {
+ name = "";
+ }
+ mailAddr = name + "<" + mailaddress + ">";
+ }
+ }
+ return mailAddr;
+ }
+
+ /**
+ * 取得邮件标题
+ *
+ * @return String
+ */
+ public String getSubject() {
+ String subject = "";
+ try {
+ subject = mimeMessage.getSubject();
+ if (subject.indexOf("=?gb18030?") != -1) {
+ subject = subject.replace("gb18030", "gb2312");
+ }
+ subject = MimeUtility.decodeText(subject);
+ if (charset == null) {
+ subject = TranCharset.TranEncodeTOGB(subject);
+ }
+ } catch (Exception e) {
+ }
+ return subject;
+ }
+
+ /**
+ * 取得邮件日期
+ *
+ * @throws MessagingException
+ */
+ public String getSentData() throws MessagingException {
+ Date sentdata = mimeMessage.getSentDate();
+ if (sentdata != null) {
+ SimpleDateFormat format = new SimpleDateFormat(dataFormat, Locale.CHINA);
+ return format.format(sentdata);
+ } else {
+ return "未知";
+ }
+ }
+
+ /**
+ * 取得邮件内容
+ *
+ * @throws Exception
+ */
+ public String getMailContent() throws Exception {
+ compileMailContent((Part) mimeMessage);
+ String content = mailContent.toString();
+ if (content.indexOf("") != -1) {
+ html = true;
+ }
+ mailContent.setLength(0);
+ return content;
+ }
+
+ public void setMailContent(StringBuffer mailContent) {
+ this.mailContent = mailContent;
+ }
+
+ /**
+ * 是否有回执
+ *
+ * @throws MessagingException
+ */
+ public boolean getReplySign() throws MessagingException {
+ boolean replySign = false;
+ String needreply[] = mimeMessage.getHeader("Disposition-Notification-To");
+ if (needreply != null) {
+ replySign = true;
+ }
+ return replySign;
+ }
+
+ /**
+ * 取得「message-ID」
+ *
+ * @throws MessagingException
+ */
+ public String getMessageID() throws MessagingException {
+ return mimeMessage.getMessageID();
+ }
+
+ /**
+ * 是否新邮件
+ *
+ * @throws MessagingException
+ */
+ public boolean isNew() throws MessagingException {
+ boolean isnew = false;
+ Flags flags = ((Message) mimeMessage).getFlags();
+ Flags.Flag[] flag = flags.getSystemFlags();
+ for (int i = 0; i < flag.length; i++) {
+ if (flag[i] == Flags.Flag.SEEN) {
+ isnew = true;
+ break;
+ }
+ }
+ return isnew;
+ }
+
+ public String getCharset() {
+ return charset;
+ }
+
+ public ArrayList getAttachments() {
+ return attachments;
+ }
+
+ public boolean isHtml() {
+ return html;
+ }
+
+ public ArrayList getAttachmentsInputStreams() {
+ return attachmentsInputStreams;
+ }
+
+ /**
+ * 解析邮件内容
+ *
+ * @param part
+ * @throws Exception
+ */
+ private void compileMailContent(Part part) throws Exception {
+ String contentType = part.getContentType();
+ // Log.v("content type", "[" + contentType.replace("\n", "") + "]" + "["
+ // + part.getContent() + "]");
+ boolean connName = false;
+ if (contentType.indexOf("name") != -1) {
+ connName = true;
+ }
+ if (part.isMimeType("text/plain") && !connName) {
+ //String content = parseInputStream((InputStream) part.getContent());
+ //mailContent.append(content);
+ mailContent.append((String)part.getContent());
+ } else if (part.isMimeType("text/html") && !connName) {
+ html = true;
+ //这里修改
+ //String content1 = parseInputStream((InputStream) part.getContent());
+ //mailContent.append(content1);
+ mailContent.append((String)part.getContent());
+ } else if (part.isMimeType("multipart/*") || part.isMimeType("message/rfc822")) {
+ if (part.getContent() instanceof Multipart) {
+ Multipart multipart = (Multipart) part.getContent();
+ int counts = multipart.getCount();
+ for (int i = 0; i < counts; i++) {
+ compileMailContent(multipart.getBodyPart(i));
+ }
+ } else {
+ Multipart multipart = new MimeMultipart(new ByteArrayDataSource(part.getInputStream(), "multipart/*"));
+ int counts = multipart.getCount();
+ for (int i = 0; i < counts; i++) {
+ compileMailContent(multipart.getBodyPart(i));
+ }
+ }
+ } else if (part.getDisposition() != null && part.getDisposition().equals(Part.ATTACHMENT)) {
+ // 获取附件
+ String filename = part.getFileName();
+ if (filename != null) {
+ if (filename.indexOf("=?gb18030?") != -1) {
+ filename = filename.replace("gb18030", "gb2312");
+ }
+ filename = MimeUtility.decodeText(filename);
+ attachments.add(filename);
+ //这里修改
+ attachmentsInputStreams.add(part.getInputStream());
+ //saveFile(filename,part.getInputStream());
+ //saveFile(filename,part.getInputStream());
+ }
+ // Log.e("content", "附件:" + filename);
+ }
+ }
+
+ /**
+ * 解析字符集编码
+ *
+ * @param contentType
+ * @return
+ */
+ private String parseCharset(String contentType) {
+ if (!contentType.contains("charset")) {
+ return null;
+ }
+ if (contentType.contains("gbk")) {
+ return "GBK";
+ } else if (contentType.contains("GB2312") || contentType.contains("gb18030")) {
+ return "gb2312";
+ } else {
+ String sub = contentType.substring(contentType.indexOf("charset") + 8).replace("\"", "");
+ if (sub.contains(";")) {
+ return sub.substring(0, sub.indexOf(";"));
+ } else {
+ return sub;
+ }
+ }
+ }
+
+ /**
+ * 解析流格式
+ *
+ * @param
+ * @param
+ * @return
+ * @throws IOException
+ * @throws MessagingException
+ */
+ private String parseInputStream(InputStream is) throws IOException, MessagingException {
+ StringBuffer str = new StringBuffer();
+ byte[] readByte = new byte[1024];
+ int count;
+ try {
+ while ((count = is.read(readByte)) != -1) {
+ if (charset == null) {
+ str.append(new String(readByte, 0, count, "GBK"));
+ } else {
+ str.append(new String(readByte, 0, count, charset));
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return str.toString();
+ }
+
+ /**
+ *
+ * 判断此邮件是否包含附件
+ *
+ */
+
+ public boolean isContainAttach(Part part) throws Exception {
+ boolean attachflag = false;
+ String contentType = part.getContentType();
+ if (part.isMimeType("multipart/*")) {
+ Multipart mp = (Multipart) part.getContent();
+ for (int i = 0; i < mp.getCount(); i++) {
+ BodyPart mpart = mp.getBodyPart(i);
+ String disposition = mpart.getDisposition();
+ if ((disposition != null)
+ && ((disposition.equals(Part.ATTACHMENT)) || (disposition
+ .equals(Part.INLINE))))
+ attachflag = true;
+ else if (mpart.isMimeType("multipart/*")) {
+ attachflag = isContainAttach((Part) mpart);
+ } else {
+ String contype = mpart.getContentType();
+ if (contype.toLowerCase().indexOf("application") != -1)
+ attachflag = true;
+ if (contype.toLowerCase().indexOf("name") != -1)
+ attachflag = true;
+ }
+ }
+ } else if (part.isMimeType("message/rfc822")) {
+ attachflag = isContainAttach((Part) part.getContent());
+ }
+ return attachflag;
+ }
+ /* //base64解码
+ private static String base64Decoder(String s) throws Exception {
+ sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
+ byte[] b = decoder.decodeBuffer(s);
+ return (new String(b));
+ }*/
+
+
+ /**
+ * 保存附件
+ *
+ */
+ /*public String saveAttachMent(Part part) throws Exception {
+ String fileName = "";
+ if (part.isMimeType("multipart*//*")) {
+ Multipart mp = (Multipart) part.getContent();
+ for (int i = 0; i < mp.getCount(); i++) {
+ BodyPart mpart = mp.getBodyPart(i);
+ String disposition = mpart.getDisposition();
+ if ((disposition != null)
+ && ((disposition.equals(Part.ATTACHMENT)) || (disposition
+ .equals(Part.INLINE)))) {
+ fileName = mpart.getFileName();
+ //String s = fileName.substring(8, fileName.indexOf("?="));
+ //fileName = base64Decoder(s);
+ if (fileName.toLowerCase().indexOf("gb2312") != -1) {
+ fileName = MimeUtility.decodeText(fileName);
+ }
+*//* if(fileName.equals("学号.txt")){
+ String path = new IOUtil().stream2file(mpart.getInputStream(), Environment.getExternalStorageDirectory().toString() + "/temp/" + fileName);
+ if (path != null) {
+ Map map = new IOUtil().Txt(path);
+ Set set = map.keySet();
+ for (Iterator iter = set.iterator(); iter.hasNext(); ) {
+ String key = (String) iter.next();
+ String value = map.get(key);
+ Student stu =new Student();
+ stu.setNumber(value);
+ new StudentDao().insert(student);
+ }
+ }
+ }else{
+ String path = new IOUtil().stream2file(mpart.getInputStream(), Environment.getExternalStorageDirectory().toString() + "/temp/" + fileName);
+ }*//*
+ //saveFile(fileName, mpart.getInputStream());
+ String path = new IOUtil().stream2file(mpart.getInputStream(), Environment.getExternalStorageDirectory().toString() + "/temp/" + fileName);
+ } else if (mpart.isMimeType("multipart*//*")) {
+ saveAttachMent(mpart);
+ } else {
+ fileName = mpart.getFileName();
+ if ((fileName != null)
+ && (fileName.toLowerCase().indexOf("GB2312") != -1)) {
+ fileName = MimeUtility.decodeText(fileName);
+ //saveFile(fileName, mpart.getInputStream());
+ }
+ }
+ }
+ } else if (part.isMimeType("message/rfc822")) {
+ saveAttachMent((Part) part.getContent());
+ }
+ return fileName;
+ }*/
+
+ /**
+ * 【设置附件存放路径】
+ */
+
+ public void setAttachPath(String attachpath) {
+ this.saveAttachPath = attachpath;
+ }
+
+ /**
+ *
+ * 设置日期显示本格式
+ */
+ public void setDateFormat(String format) throws Exception {
+ this.dateformat = format;
+ }
+
+ /**
+ * 【获得附件存放路径】
+ */
+
+ public String getAttachPath() {
+ return saveAttachPath;
+ }
+
+ /**
+ * 【真正的保存附件到指定目录里】
+ */
+
+/* private void saveFile(String fileName, InputStream in) throws Exception {
+
+ String osName = System.getProperty("os.name");
+ String storedir = getAttachPath();
+ String separator = "";
+ if (osName == null)
+ osName = "";
+ if (osName.toLowerCase().indexOf("win") != -1) {
+ separator = "\\";
+ if (storedir == null || storedir.equals(""))
+ storedir = "/";
+ } else {
+ separator = "/";
+ storedir = Environment.getExternalStorageDirectory().toString() + "/temp/";
+ }
+ File storefile = new File(storedir + fileName);
+ BufferedOutputStream bos = null;
+ BufferedInputStream bis = null;
+ try {
+ bos = new BufferedOutputStream(new FileOutputStream(storefile));
+ bis = new BufferedInputStream(in);
+ int c;
+ while ((c = bis.read()) != -1) {
+ bos.write(c);
+ bos.flush();
+ }
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ throw new Exception("文件保存失败!");
+ } finally {
+ bos.close();
+ bis.close();
+ }
+ }*/
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailSenter.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailSenter.java"
new file mode 100644
index 0000000..ad44c51
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/MailSenter.java"
@@ -0,0 +1,166 @@
+
+package com.hzu.feirty.MailIM.utils;
+
+import android.os.Handler;
+
+import com.hzu.feirty.MailIM.db.Email;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Properties;
+
+import javax.activation.CommandMap;
+import javax.activation.DataHandler;
+import javax.activation.FileDataSource;
+import javax.activation.MailcapCommandMap;
+import javax.mail.Address;
+import javax.mail.Authenticator;
+import javax.mail.Message;
+import javax.mail.Multipart;
+import javax.mail.PasswordAuthentication;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeUtility;
+
+public class MailSenter {
+
+ private String host;
+ private String username;
+ private String password;
+
+ private Handler handler;
+
+ // private static final String SMTPHOST = "smtphost";
+ // private static final String USERNAME = "username";
+ // private static final String PASSWORD = "password";
+ // private static MailSenter instance;
+
+ // public static MailSenter getInstance(EditMailActivity context) {
+ // if (instance == null) {
+ // instance = new MailSenter(PreferencesUtil.getSharedStringData(context,
+ // SMTPHOST), PreferencesUtil.getSharedStringData(context, USERNAME),
+ // PreferencesUtil.getSharedStringData(context, PASSWORD));
+ // }
+ // return instance;
+ // }
+
+ /**
+ * 构造方法
+ *
+ * @param host 邮箱服务器
+ * @param username 邮箱用户全名。例如:test@qq.com
+ * @param password 邮箱用户密码
+ */
+ public MailSenter(Handler handler, String host, String username, String password) {
+ this.handler = handler;
+ this.host = host;
+ this.username = username;
+ this.password = password;
+ }
+
+ /**
+ * 发送邮件
+ *
+ * @param mailTo 收件人email地址
+ * @param mailSubject 邮件标题
+ * @param mailBody 邮件正文
+ * @throws Exception
+ */
+ public void send(String mailTo, String mailSubject, String mailBody) throws Exception {
+ send(mailTo, mailSubject, mailBody, null, null);
+ }
+
+ /**
+ * 发送邮件
+ *
+ * @param email 邮件对象
+ * @throws Exception
+ */
+ public void send(Email email) throws Exception {
+ send(email.getTo(), email.getSubject(), email.getContent(), email.getAttachments(), null);
+ }
+
+ /**
+ * 发送邮件
+ *
+ * @param mailTo 收件人email地址
+ * @param mailSubject 邮件标题
+ * @param mailBody 邮件正文
+ * @param attachments 附件
+ * @param personalName 邮件显示的发送人名称
+ * @throws Exception
+ */
+ public void send(String mailTo, String mailSubject, String mailBody, ArrayList attachments,
+ String personalName) throws Exception {
+ try {
+ Properties props = new Properties();
+ Authenticator auth = new Email_Autherticator();
+ // 进行邮件服务器用户认证
+ /** QQ邮箱需要建立ssl连接 */
+ props.put("mail.smtp.host", host);
+ props.put("mail.smtp.auth", "true");
+ props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+ props.setProperty("mail.smtp.port", "465");
+ props.setProperty("mail.smtp.socketFactory.port", "465");
+ Session session = Session.getInstance(props, auth);
+ session.setDebug(true);
+ // 设置session,和邮件服务器进行通讯。
+ MimeMessage message = new MimeMessage(session);
+ message.setSentDate(new Date()); // 设置邮件发送日期
+ message.setFrom(new InternetAddress(username, personalName)); // 设置邮件发送者的地址
+
+ String[] addrs = mailTo.split(",");
+ Address[] to = new InternetAddress[addrs.length];
+ for (int i = 0; i < addrs.length; i++) {
+ to[i] = new InternetAddress(addrs[i]);
+ }
+ message.addRecipients(Message.RecipientType.TO, to);
+
+ message.setSubject(mailSubject); // 设置邮件主题
+ // message.setContent("foobar, "text/html; charset=UTF-8");
+ //message.setText(mailBody);// 设置邮件正文
+ Multipart mpRoot = new MimeMultipart();
+ MimeBodyPart mimeBodyPart = new MimeBodyPart();
+ mimeBodyPart.setContent(mailBody, "text/html;charset=gb2312");
+ mpRoot.addBodyPart(mimeBodyPart);
+ for (int i = 0; i < attachments.size(); i++) {
+ MimeBodyPart mpAttachments = new MimeBodyPart();
+ mpAttachments.setDataHandler(new DataHandler(new FileDataSource(attachments.get(i))));
+ mpAttachments.setFileName(MimeUtility.encodeText(attachments.get(i).substring
+ (attachments.get(i).lastIndexOf("/") + 1)));
+ mpRoot.addBodyPart(mpAttachments);
+ }
+ message.setContent(mpRoot);
+
+ // 设置mailcap支持多种格式
+ MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
+ mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
+ mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
+ mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
+ mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
+ mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
+ CommandMap.setDefaultCommandMap(mc);
+ Transport.send(message); // 发送邮件
+ handler.obtainMessage(1).sendToTarget();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ handler.obtainMessage(999).sendToTarget();
+ throw new Exception(ex.getMessage());
+ }
+ }
+
+ /**
+ * 用来进行服务器对用户的认证
+ */
+ public class Email_Autherticator extends Authenticator {
+ @Override
+ public PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication(username, password);
+ }
+ }
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/NetUtil.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/NetUtil.java"
new file mode 100644
index 0000000..6d697cf
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/NetUtil.java"
@@ -0,0 +1,34 @@
+package com.hzu.feirty.MailIM.utils;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+
+/**
+ * Created by Administrator on 2017-6-28.
+ */
+
+public class NetUtil {
+ private static final String IDENTITY = "saveidentity";
+ public static boolean isNetworkConnected(Context context) {
+ if (context != null) {
+ ConnectivityManager mConnectivityManager = (ConnectivityManager) context
+ .getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo mNetworkInfo = mConnectivityManager
+ .getActiveNetworkInfo();
+ if (mNetworkInfo != null) {
+ return mNetworkInfo.isAvailable();
+ }
+ }
+ return false;
+ }
+ public static boolean isIdentity(Context context){
+ if(context!=null){
+ String str= PreferencesUtil.getSharedStringData(context,IDENTITY);
+ if(!str.contains("aaaa")){
+ return false;
+ }
+ }
+ return true;
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/PreferencesUtil.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/PreferencesUtil.java"
new file mode 100644
index 0000000..ff359ed
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/PreferencesUtil.java"
@@ -0,0 +1,95 @@
+/**
+ * PreferencesUtil()类
+ *个人设置参数的封装类
+ * SAVEUSER:记住密码 -- AUTOLOGIN:自动登陆
+ * USERNAME:用户名 -- PASSWORD:密码
+ * POP3HOST、SMTPHOST
+*/
+
+
+package com.hzu.feirty.MailIM.utils;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+
+public class PreferencesUtil {
+
+ private static SharedPreferences sp;
+
+ private static void init(Context context) {
+ if (sp == null) {
+ sp = PreferenceManager.getDefaultSharedPreferences(context);
+ }
+ }
+
+ public static void setSharedIntData(Context context, String key, int value) {
+ if (sp == null) {
+ init(context);
+ }
+ sp.edit().putInt(key, value).commit();
+ }
+
+ public static int getSharedIntData(Context context, String key) {
+ if (sp == null) {
+ init(context);
+ }
+ return sp.getInt(key, 0);
+ }
+
+ public static void setSharedlongData(Context context, String key, long value) {
+ if (sp == null) {
+ init(context);
+ }
+ sp.edit().putLong(key, value).commit();
+ }
+
+ public static long getSharedlongData(Context context, String key) {
+ if (sp == null) {
+ init(context);
+ }
+ return sp.getLong(key, 0l);
+ }
+
+ public static void setSharedFloatData(Context context, String key, float value) {
+ if (sp == null) {
+ init(context);
+ }
+ sp.edit().putFloat(key, value).commit();
+ }
+
+ public static Float getSharedFloatData(Context context, String key) {
+ if (sp == null) {
+ init(context);
+ }
+ return sp.getFloat(key, 0f);
+ }
+
+ public static void setSharedBooleanData(Context context, String key, boolean value) {
+ if (sp == null) {
+ init(context);
+ }
+ sp.edit().putBoolean(key, value).commit();
+ }
+
+ public static Boolean getSharedBooleanData(Context context, String key) {
+ if (sp == null) {
+ init(context);
+ }
+ return sp.getBoolean(key, false);
+ }
+
+ public static void setSharedStringData(Context context, String key, String value) {
+ if (sp == null) {
+ init(context);
+ }
+ sp.edit().putString(key, value).commit();
+ }
+
+ public static String getSharedStringData(Context context, String key) {
+ if (sp == null) {
+ init(context);
+ }
+ return sp.getString(key, "");
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/SharedPrefsUtil.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/SharedPrefsUtil.java"
new file mode 100644
index 0000000..f71b68d
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/SharedPrefsUtil.java"
@@ -0,0 +1,43 @@
+package com.hzu.feirty.MailIM.utils;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+/**
+ * SharedPreferences存储数据方式工具类
+ * @author zuolongsnail
+ */
+public class SharedPrefsUtil {
+ public final static String SETTING = "Setting";
+ public static void putValue(Context context, String key, int value) {
+ SharedPreferences.Editor sp = context.getSharedPreferences(SETTING, Context.MODE_PRIVATE).edit();
+ sp.putInt(key, value);
+ sp.commit();
+ }
+ public static void putValue(Context context,String key, boolean value) {
+ SharedPreferences.Editor sp = context.getSharedPreferences(SETTING, Context.MODE_PRIVATE).edit();
+ sp.putBoolean(key, value);
+ sp.commit();
+ }
+ public static void putValue(Context context,String key, String value) {
+ SharedPreferences.Editor sp = context.getSharedPreferences(SETTING, Context.MODE_PRIVATE).edit();
+ sp.putString(key, value);
+ sp.commit();
+ }
+ public static int getValue(Context context,String key, int defValue) {
+ SharedPreferences sp = context.getSharedPreferences(SETTING, Context.MODE_PRIVATE);
+ int value = sp.getInt(key, defValue);
+ return value;
+ }
+ public static boolean getValue(Context context,String key, boolean defValue) {
+ SharedPreferences sp = context.getSharedPreferences(SETTING, Context.MODE_PRIVATE);
+ boolean value = sp.getBoolean(key, defValue);
+ return value;
+ }
+ public static String getValue(Context context,String key, String defValue) {
+ SharedPreferences sp = context.getSharedPreferences(SETTING, Context.MODE_PRIVATE);
+ String value = sp.getString(key, defValue);
+ return value;
+ }
+}
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/StudentDao.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/StudentDao.java"
new file mode 100644
index 0000000..979c894
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/StudentDao.java"
@@ -0,0 +1,56 @@
+package com.hzu.feirty.MailIM.utils;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import com.hzu.feirty.MailIM.db.Student;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by Administrator on 2017-6-24.
+ */
+
+public class StudentDao {
+ private StudentSQLiteOpenHelper helper;
+
+ public StudentDao(Context context){
+ helper =new StudentSQLiteOpenHelper(context);
+ }
+ public StudentDao(){
+ helper =new StudentSQLiteOpenHelper(null);
+ }
+ public void insert(Student student) {
+ SQLiteDatabase db = helper.getWritableDatabase();
+ if(!find(student.getNumber())) {
+ db.execSQL("insert into student (number) values(?)", new String[]{student.getNumber()});
+ }
+ db.close();
+ }
+ public List queryAll(){
+ SQLiteDatabase db = helper.getWritableDatabase();
+ Cursor c =db.query("student",null,null,null,null,null,"number DESC");
+ List list = new ArrayList();
+ while(c.moveToNext()){
+ long id =c.getLong(c.getColumnIndex("_id"));
+ String number = c.getString(1);
+ list.add(new Student(id,number));
+ }
+ c.close();
+ db.close();
+ return list;
+ }
+
+ public boolean find(String number){
+ SQLiteDatabase db = helper.getWritableDatabase();
+ Cursor cursor = db.query("student", new String[]{"id", "number"}, "number=?", new String[]{number}, null, null, "id");
+ while (cursor.moveToNext()) {
+ String id = cursor.getString(cursor.getColumnIndex("id"));
+ if (id!=null) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/StudentSQLiteOpenHelper.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/StudentSQLiteOpenHelper.java"
new file mode 100644
index 0000000..26b8c38
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/StudentSQLiteOpenHelper.java"
@@ -0,0 +1,27 @@
+package com.hzu.feirty.MailIM.utils;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+
+/**
+ * Created by Administrator on 2017-6-24.
+ */
+
+public class StudentSQLiteOpenHelper extends SQLiteOpenHelper {
+ public StudentSQLiteOpenHelper(Context context) {
+ super(context,"student.db",null,2);
+ // TODO Auto-generated constructor stub
+ }
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ // TODO Auto-generated method stub
+ db.execSQL("create table student( id integer primary key autoincrement ,number varchar(30))");
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/ToastUtil.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/ToastUtil.java"
new file mode 100644
index 0000000..6c3bd13
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/ToastUtil.java"
@@ -0,0 +1,14 @@
+package com.hzu.feirty.MailIM.utils;
+
+import android.content.Context;
+import android.widget.Toast;
+
+/**
+ * Created by Administrator on 2016/1/1.
+ */
+public class ToastUtil {
+
+ public static void show(Context context, String content) {
+ Toast.makeText(context, content, Toast.LENGTH_SHORT).show();
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/TranCharset.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/TranCharset.java"
new file mode 100644
index 0000000..b8b92be
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/java/com/hzu/feirty/MailIM/utils/TranCharset.java"
@@ -0,0 +1,140 @@
+/**
+
+ */
+
+package com.hzu.feirty.MailIM.utils;
+
+/**
+
+ */
+public class TranCharset {
+
+ private static final String PRE_FIX_UTF = "";
+ private static final String POS_FIX_UTF = ";";
+
+ public TranCharset() {
+ }
+
+ /**
+ * Translate charset encoding to unicode
+ *
+ * @param sTemp charset encoding is gb2312
+ * @return charset encoding is unicode
+ */
+ public static String XmlFormalize(String sTemp) {
+ StringBuffer sb = new StringBuffer();
+
+ if (sTemp == null || sTemp.equals("")) {
+ return "";
+ }
+ String s = TranCharset.TranEncodeTOGB(sTemp);
+ for (int i = 0; i < s.length(); i++) {
+ char cChar = s.charAt(i);
+ if (TranCharset.isGB2312(cChar)) {
+ sb.append(PRE_FIX_UTF);
+ sb.append(Integer.toHexString(cChar));
+ sb.append(POS_FIX_UTF);
+ } else {
+ switch ((int) cChar) {
+ case 32:
+ sb.append(" ");
+ break;
+ case 34:
+ sb.append(""");
+ break;
+ case 38:
+ sb.append("&");
+ break;
+ case 60:
+ sb.append("<");
+ break;
+ case 62:
+ sb.append(">");
+ break;
+ default:
+ sb.append(cChar);
+ }
+ }
+ }
+ return sb.toString();
+ }
+
+ /**
+ * ���ַ��������ʽת��GB2312
+ *
+ * @param str
+ * @return
+ */
+ public static String TranEncodeTOGB(String str) {
+ try {
+ String strEncode = TranCharset.getEncoding(str);
+ String temp = new String(str.getBytes(strEncode), "GBK");
+ return temp;
+ } catch (java.io.IOException ex) {
+
+ return null;
+ }
+ }
+
+ /**
+ * �ж������ַ��Ƿ�Ϊgb2312�ı����ʽ
+ *
+ * @param c �����ַ�
+ * @return �����gb2312�����棬���ؼ�
+ */
+ public static boolean isGB2312(char c) {
+ Character ch = Character.valueOf(c);
+ String sCh = ch.toString();
+ try {
+ byte[] bb = sCh.getBytes("gb2312");
+ if (bb.length > 1) {
+ return true;
+ }
+ } catch (java.io.UnsupportedEncodingException ex) {
+ return false;
+ }
+ return false;
+ }
+
+ /**
+ * �ж��ַ����ı���
+ *
+ * @param str
+ * @return
+ */
+ public static String getEncoding(String str) {
+ String encode = "GB2312";
+ try {
+ if (str.equals(new String(str.getBytes(encode), encode))) {
+ String s = encode;
+ return s;
+ }
+ } catch (Exception exception) {
+ }
+ encode = "ISO-8859-1";
+ try {
+ if (str.equals(new String(str.getBytes(encode), encode))) {
+ String s1 = encode;
+ return s1;
+ }
+ } catch (Exception exception1) {
+ }
+ encode = "UTF-8";
+ try {
+ if (str.equals(new String(str.getBytes(encode), encode))) {
+ String s2 = encode;
+ return s2;
+ }
+ } catch (Exception exception2) {
+ }
+ encode = "GBK";
+ try {
+ if (str.equals(new String(str.getBytes(encode), encode))) {
+ String s3 = encode;
+ return s3;
+ }
+ } catch (Exception exception3) {
+ }
+ return "";
+ }
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_left_in.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_left_in.xml"
new file mode 100644
index 0000000..da0bd77
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_left_in.xml"
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_left_out.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_left_out.xml"
new file mode 100644
index 0000000..cc2b4d6
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_left_out.xml"
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_right_in.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_right_in.xml"
new file mode 100644
index 0000000..41e6b9e
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_right_in.xml"
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_right_out.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_right_out.xml"
new file mode 100644
index 0000000..244e76b
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/anim/push_right_out.xml"
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bg_layout_shape.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bg_layout_shape.xml"
new file mode 100644
index 0000000..626dbb3
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bg_layout_shape.xml"
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_layout_selector.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_layout_selector.xml"
new file mode 100644
index 0000000..0b26654
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_layout_selector.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_select.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_select.xml"
new file mode 100644
index 0000000..9cc37de
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_select.xml"
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_unselect.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_unselect.xml"
new file mode 100644
index 0000000..9d29846
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/bottom_unselect.xml"
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_back.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_back.png"
new file mode 100644
index 0000000..443b9a3
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_back.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_file.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_file.png"
new file mode 100644
index 0000000..5407b52
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_file.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_folder.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_folder.png"
new file mode 100644
index 0000000..376588d
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/explorer_folder.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_main.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_main.png"
new file mode 100644
index 0000000..e7b3012
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_main.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_main_preesed.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_main_preesed.png"
new file mode 100644
index 0000000..8e4fd47
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_main_preesed.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_mycenter.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_mycenter.png"
new file mode 100644
index 0000000..eb8aaba
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_mycenter.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_mycenter_preesed.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_mycenter_preesed.png"
new file mode 100644
index 0000000..97a0ea0
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_btn_mycenter_preesed.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_search_btn.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_search_btn.png"
new file mode 100644
index 0000000..b413dbc
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_search_btn.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_search_btn_preesed.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_search_btn_preesed.png"
new file mode 100644
index 0000000..575bade
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/footer_search_btn_preesed.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_action_name.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_action_name.png"
new file mode 100644
index 0000000..a7a9866
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_action_name.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_launcher.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_launcher.png"
new file mode 100644
index 0000000..288b665
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_launcher.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_refalsh.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_refalsh.png"
new file mode 100644
index 0000000..253a7d2
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/ic_refalsh.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/mid_layout_selector.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/mid_layout_selector.xml"
new file mode 100644
index 0000000..a78a5b8
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/mid_layout_selector.xml"
@@ -0,0 +1,18 @@
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/setting_arrow.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/setting_arrow.png"
new file mode 100644
index 0000000..d0a416d
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/setting_arrow.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_layout_selector.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_layout_selector.xml"
new file mode 100644
index 0000000..9cea5bd
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_layout_selector.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_select.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_select.xml"
new file mode 100644
index 0000000..6659095
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_select.xml"
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_unselect.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_unselect.xml"
new file mode 100644
index 0000000..a1ddb2b
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/single_unselect.xml"
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_layout_selector.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_layout_selector.xml"
new file mode 100644
index 0000000..7c8a2c6
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_layout_selector.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_select.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_select.xml"
new file mode 100644
index 0000000..5f3f06c
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_select.xml"
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_unselect.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_unselect.xml"
new file mode 100644
index 0000000..48e3fac
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-hdpi/top_unselect.xml"
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-mdpi/ic_action_name.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-mdpi/ic_action_name.png"
new file mode 100644
index 0000000..3b5c58f
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-mdpi/ic_action_name.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-mdpi/ic_refalsh.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-mdpi/ic_refalsh.png"
new file mode 100644
index 0000000..906aec0
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-mdpi/ic_refalsh.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xhdpi/ic_action_name.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xhdpi/ic_action_name.png"
new file mode 100644
index 0000000..5cf705f
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xhdpi/ic_action_name.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xhdpi/ic_refalsh.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xhdpi/ic_refalsh.png"
new file mode 100644
index 0000000..060ee0f
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xhdpi/ic_refalsh.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xxhdpi/ic_action_name.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xxhdpi/ic_action_name.png"
new file mode 100644
index 0000000..d14a9cb
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xxhdpi/ic_action_name.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xxhdpi/ic_refalsh.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xxhdpi/ic_refalsh.png"
new file mode 100644
index 0000000..34f5c1c
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable-xxhdpi/ic_refalsh.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_itembg_selector.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_itembg_selector.xml"
new file mode 100644
index 0000000..5e716d2
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_itembg_selector.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_main_selector.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_main_selector.xml"
new file mode 100644
index 0000000..07b653e
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_main_selector.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_mycenter_selector.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_mycenter_selector.xml"
new file mode 100644
index 0000000..5bfc095
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_mycenter_selector.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_search_selector.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_search_selector.xml"
new file mode 100644
index 0000000..4c5614d
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/footer_search_selector.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/text_area.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/text_area.xml"
new file mode 100644
index 0000000..2f60852
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/drawable/text_area.xml"
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_identity.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_identity.xml"
new file mode 100644
index 0000000..3509b84
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_identity.xml"
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_main.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_main.xml"
new file mode 100644
index 0000000..f25e50f
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_main.xml"
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_open.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_open.xml"
new file mode 100644
index 0000000..f9d6fee
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_open.xml"
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_register.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_register.xml"
new file mode 100644
index 0000000..8657f41
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_register.xml"
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_stu_set.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_stu_set.xml"
new file mode 100644
index 0000000..dd4708d
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_stu_set.xml"
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_tea_set.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_tea_set.xml"
new file mode 100644
index 0000000..1ac6b45
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/activity_tea_set.xml"
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/explorer.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/explorer.xml"
new file mode 100644
index 0000000..c614989
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/explorer.xml"
@@ -0,0 +1,4 @@
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_main.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_main.xml"
new file mode 100644
index 0000000..de74852
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_main.xml"
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_mycenter.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_mycenter.xml"
new file mode 100644
index 0000000..7208544
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_mycenter.xml"
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_search.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_search.xml"
new file mode 100644
index 0000000..2597809
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/fragment_search.xml"
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/login.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/login.xml"
new file mode 100644
index 0000000..ae007c5
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/login.xml"
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailbox_item.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailbox_item.xml"
new file mode 100644
index 0000000..ea93c83
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailbox_item.xml"
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailcontent.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailcontent.xml"
new file mode 100644
index 0000000..d0ddc00
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailcontent.xml"
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailedit.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailedit.xml"
new file mode 100644
index 0000000..078b15a
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/layout/mailedit.xml"
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/menu/base_toolbar_menu.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/menu/base_toolbar_menu.xml"
new file mode 100644
index 0000000..f2a65b0
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/menu/base_toolbar_menu.xml"
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/menu/main.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/menu/main.xml"
new file mode 100644
index 0000000..fdc6c3a
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/menu/main.xml"
@@ -0,0 +1,12 @@
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-hdpi/ic_launcher.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-hdpi/ic_launcher.png"
new file mode 100644
index 0000000..6db17aa
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-hdpi/ic_launcher.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-mdpi/ic_launcher.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-mdpi/ic_launcher.png"
new file mode 100644
index 0000000..ddedab6
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-mdpi/ic_launcher.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xhdpi/ic_launcher.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xhdpi/ic_launcher.png"
new file mode 100644
index 0000000..36d56a4
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xhdpi/ic_launcher.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xxhdpi/ic_launcher.png"
new file mode 100644
index 0000000..cabc1c9
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png"
new file mode 100644
index 0000000..ce22034
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values-w820dp/dimens.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values-w820dp/dimens.xml"
new file mode 100644
index 0000000..63fc816
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values-w820dp/dimens.xml"
@@ -0,0 +1,6 @@
+
+
+ 64dp
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/colors.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/colors.xml"
new file mode 100644
index 0000000..4c77867
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/colors.xml"
@@ -0,0 +1,16 @@
+
+
+ #3F51B5
+ #303F9F
+ #FF4081
+ #CC6600
+ #FFE6E6
+ #F99503
+
+ #ccc
+ #333
+ #fff
+ #419DE4
+ #ccc
+ #FFFFFF
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/dimens.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/dimens.xml"
new file mode 100644
index 0000000..55c1e59
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/dimens.xml"
@@ -0,0 +1,7 @@
+
+
+
+ 16dp
+ 16dp
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/drawable.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/drawable.xml"
new file mode 100644
index 0000000..7971d92
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/drawable.xml"
@@ -0,0 +1,10 @@
+
+
+ #363232
+ #363232
+ #363232
+ #ffffff
+ #ffffff
+ #ffffff
+ #ffffff
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/strings.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/strings.xml"
new file mode 100644
index 0000000..aa11e1a
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/strings.xml"
@@ -0,0 +1,20 @@
+
+
+
+ TabMenu
+ Hello world!
+ Settings
+ 邮箱地址
+ 密码
+ 标题
+ 邮件正文
+ 记住密码
+ 自动登录
+ 登陆
+ 取消
+ 回复/转发
+ 添加附件
+ 发送
+ 新
+
+
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/styles.xml" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/styles.xml"
new file mode 100644
index 0000000..46749ef
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/main/res/values/styles.xml"
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/test/java/com/hzu/feirty/MailIM/ExampleUnitTest.java" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/test/java/com/hzu/feirty/MailIM/ExampleUnitTest.java"
new file mode 100644
index 0000000..620b901
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/app/src/test/java/com/hzu/feirty/MailIM/ExampleUnitTest.java"
@@ -0,0 +1,17 @@
+package com.hzu.feirty.MailIM;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() throws Exception {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/build.gradle" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/build.gradle"
new file mode 100644
index 0000000..53f4fad
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/build.gradle"
@@ -0,0 +1,23 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:2.2.1'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle.properties" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle.properties"
new file mode 100644
index 0000000..aac7c9b
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle.properties"
@@ -0,0 +1,17 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle/wrapper/gradle-wrapper.jar" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle/wrapper/gradle-wrapper.jar"
new file mode 100644
index 0000000..13372ae
Binary files /dev/null and "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle/wrapper/gradle-wrapper.jar" differ
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle/wrapper/gradle-wrapper.properties" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle/wrapper/gradle-wrapper.properties"
new file mode 100644
index 0000000..04e285f
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradle/wrapper/gradle-wrapper.properties"
@@ -0,0 +1,6 @@
+#Mon Dec 28 10:00:20 PST 2015
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradlew" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradlew"
new file mode 100644
index 0000000..9d82f78
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradlew"
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradlew.bat" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradlew.bat"
new file mode 100644
index 0000000..8a0b282
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/gradlew.bat"
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git "a/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/settings.gradle" "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/settings.gradle"
new file mode 100644
index 0000000..e7b4def
--- /dev/null
+++ "b/src/MailIM/\345\256\242\346\210\267\347\253\257/MailIM/settings.gradle"
@@ -0,0 +1 @@
+include ':app'
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.classpath" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.classpath"
new file mode 100644
index 0000000..96c5a3c
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.classpath"
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.mymetadata" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.mymetadata"
new file mode 100644
index 0000000..00e22ec
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.mymetadata"
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.project" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.project"
new file mode 100644
index 0000000..493e149
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.project"
@@ -0,0 +1,58 @@
+
+
+ MailIM
+
+
+
+
+
+ org.eclipse.wst.common.project.facet.core.builder
+
+
+
+
+ org.eclipse.wst.jsdt.core.javascriptValidator
+
+
+
+
+ com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator
+
+
+
+
+ com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator
+
+
+
+
+ org.eclipse.wst.validation.validationbuilder
+
+
+
+
+ com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder
+
+
+
+
+
+ com.genuitec.eclipse.ast.deploy.core.deploymentnature
+ org.eclipse.jem.workbench.JavaEMFNature
+ com.genuitec.eclipse.j2eedt.core.webnature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.wst.jsdt.core.jsNature
+ org.eclipse.wst.common.project.facet.core.nature
+ org.eclipse.wst.common.modulecore.ModuleCoreNature
+
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/.jsdtscope" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/.jsdtscope"
new file mode 100644
index 0000000..252e54f
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/.jsdtscope"
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/com.genuitec.eclipse.j2eedt.core.prefs" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/com.genuitec.eclipse.j2eedt.core.prefs"
new file mode 100644
index 0000000..6f5557e
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/com.genuitec.eclipse.j2eedt.core.prefs"
@@ -0,0 +1,2 @@
+defaultTldInfo=f\=http\://java.sun.com/jsf/core;http\://java.sun.com/jsf/html\=h;http\://struts.apache.org/tags-bean\=bean;http\://java.sun.com/jsp/jstl/fmt\=fmt;bean\=http\://struts.apache.org/tags-bean;nested\=http\://struts.apache.org/tags-nested;http\://java.sun.com/jsp/jstl/sql\=sql;fmt\=http\://java.sun.com/jsp/jstl/fmt;c\=http\://java.sun.com/jsp/jstl/core;http\://struts.apache.org/tags-logic\=logic;http\://java.sun.com/jsp/jstl/xml\=x;http\://java.sun.com/jsp/jstl/core\=c;logic\=http\://struts.apache.org/tags-logic;h\=http\://java.sun.com/jsf/html;http\://struts.apache.org/tags-tiles\=tiles;http\://java.sun.com/jsp/jstl/functions\=fn;tiles\=http\://struts.apache.org/tags-tiles;sql\=http\://java.sun.com/jsp/jstl/sql;http\://struts.apache.org/tags-html\=html;html\=http\://struts.apache.org/tags-html;http\://struts.apache.org/tags-nested\=nested;http\://java.sun.com/jsf/core\=f;fn\=http\://java.sun.com/jsp/jstl/functions;x\=http\://java.sun.com/jsp/jstl/xml
+eclipse.preferences.version=1
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/com.genuitec.eclipse.ws.prefs" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/com.genuitec.eclipse.ws.prefs"
new file mode 100644
index 0000000..28fbb2b
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/com.genuitec.eclipse.ws.prefs"
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+ws.framework.id=com.genuitec.eclipse.ws.jaxws
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.jdt.core.prefs" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.jdt.core.prefs"
new file mode 100644
index 0000000..c537b63
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.jdt.core.prefs"
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.common.component" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.common.component"
new file mode 100644
index 0000000..b635a37
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.common.component"
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.common.project.facet.core.xml" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.common.project.facet.core.xml"
new file mode 100644
index 0000000..5a88726
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.common.project.facet.core.xml"
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.jsdt.ui.superType.container" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.jsdt.ui.superType.container"
new file mode 100644
index 0000000..3bd5d0a
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.jsdt.ui.superType.container"
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.jsdt.ui.superType.name" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.jsdt.ui.superType.name"
new file mode 100644
index 0000000..05bd71b
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/.settings/org.eclipse.wst.jsdt.ui.superType.name"
@@ -0,0 +1 @@
+Window
\ No newline at end of file
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/META-INF/MANIFEST.MF" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/META-INF/MANIFEST.MF"
new file mode 100644
index 0000000..254272e
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/META-INF/MANIFEST.MF"
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/activation.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/activation.jar"
new file mode 100644
index 0000000..614a03c
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/activation.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/additionnal.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/additionnal.jar"
new file mode 100644
index 0000000..aeb9611
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/additionnal.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/ant.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/ant.jar"
new file mode 100644
index 0000000..0a56a58
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/ant.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-beanutils-1.8.0.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-beanutils-1.8.0.jar"
new file mode 100644
index 0000000..caf7ae3
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-beanutils-1.8.0.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-collections-3.1.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-collections-3.1.jar"
new file mode 100644
index 0000000..41e230f
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-collections-3.1.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1-javadoc.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1-javadoc.jar"
new file mode 100644
index 0000000..136818e
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1-javadoc.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1-sources.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1-sources.jar"
new file mode 100644
index 0000000..24043dd
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1-sources.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1.jar"
new file mode 100644
index 0000000..e984731
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-email-1.1.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-lang-2.5.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-lang-2.5.jar"
new file mode 100644
index 0000000..ae491da
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-lang-2.5.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-logging-1.1.1.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-logging-1.1.1.jar"
new file mode 100644
index 0000000..8758a96
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/commons-logging-1.1.1.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/dom4j-1.6.1.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/dom4j-1.6.1.jar"
new file mode 100644
index 0000000..c8c4dbb
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/dom4j-1.6.1.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/ezmorph-1.0.6.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/ezmorph-1.0.6.jar"
new file mode 100644
index 0000000..30fad12
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/ezmorph-1.0.6.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/gson-2.5.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/gson-2.5.jar"
new file mode 100644
index 0000000..5c35c5d
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/gson-2.5.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15-javadoc.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15-javadoc.jar"
new file mode 100644
index 0000000..1f45cee
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15-javadoc.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15-sources.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15-sources.jar"
new file mode 100644
index 0000000..313c783
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15-sources.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15.jar"
new file mode 100644
index 0000000..68d4f3b
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/json-lib-2.4-jdk15.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/jsoup-1.6.3.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/jsoup-1.6.3.jar"
new file mode 100644
index 0000000..b3421d5
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/jsoup-1.6.3.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/junit-3.8.1.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/junit-3.8.1.jar"
new file mode 100644
index 0000000..674d71e
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/junit-3.8.1.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/log4j-1.2.13.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/log4j-1.2.13.jar"
new file mode 100644
index 0000000..dde9972
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/log4j-1.2.13.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/mail.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/mail.jar"
new file mode 100644
index 0000000..0922295
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/mail.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/mysql-connector-java-5.1.15-bin.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/mysql-connector-java-5.1.15-bin.jar"
new file mode 100644
index 0000000..560c5f0
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/mysql-connector-java-5.1.15-bin.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-3.8-20120326.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-3.8-20120326.jar"
new file mode 100644
index 0000000..edc0ee5
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-3.8-20120326.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-examples-3.8-20120326.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-examples-3.8-20120326.jar"
new file mode 100644
index 0000000..1c3351a
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-examples-3.8-20120326.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-excelant-3.8-20120326.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-excelant-3.8-20120326.jar"
new file mode 100644
index 0000000..ad39033
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-excelant-3.8-20120326.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-ooxml-3.8-20120326.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-ooxml-3.8-20120326.jar"
new file mode 100644
index 0000000..9175c16
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-ooxml-3.8-20120326.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-ooxml-schemas-3.8-20120326.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-ooxml-schemas-3.8-20120326.jar"
new file mode 100644
index 0000000..2372d1e
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-ooxml-schemas-3.8-20120326.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-scratchpad-3.8-20120326.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-scratchpad-3.8-20120326.jar"
new file mode 100644
index 0000000..02e52e8
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/poi-scratchpad-3.8-20120326.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/smack.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/smack.jar"
new file mode 100644
index 0000000..f9cb4da
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/smack.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/smackx.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/smackx.jar"
new file mode 100644
index 0000000..4853caf
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/smackx.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/stax-api-1.0.1.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/stax-api-1.0.1.jar"
new file mode 100644
index 0000000..d9a1665
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/stax-api-1.0.1.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/xmlbeans-2.3.0.jar" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/xmlbeans-2.3.0.jar"
new file mode 100644
index 0000000..ccd8163
Binary files /dev/null and "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/lib/xmlbeans-2.3.0.jar" differ
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/web.xml" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/web.xml"
new file mode 100644
index 0000000..3079ed9
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/WEB-INF/web.xml"
@@ -0,0 +1,57 @@
+
+
+
+
+ This is the description of my J2EE component
+ This is the display name of my J2EE component
+ DoGetUser
+ com.hzu.feirty.servlet.DoGetUser
+
+
+ This is the description of my J2EE component
+ This is the display name of my J2EE component
+ DoGetMail
+ com.hzu.feirty.servlet.DoGetMail
+
+
+ This is the description of my J2EE component
+ This is the display name of my J2EE component
+ DoGetTeacher
+ com.hzu.feirty.servlet.DoGetTeacher
+
+
+ This is the description of my J2EE component
+ This is the display name of my J2EE component
+ DoGetStudent
+ com.hzu.feirty.servlet.DoGetStudent
+
+
+ This is the description of my J2EE component
+ This is the display name of my J2EE component
+ DoGetType
+ com.hzu.feirty.servlet.DoGetType
+
+
+ DoGetUser
+ /DoGetUser
+
+
+ DoGetMail
+ /DoGetMail
+
+
+ DoGetTeacher
+ /DoGetTeacher
+
+
+ DoGetStudent
+ /DoGetStudent
+
+
+ DoGetType
+ /DoGetType
+
+
+ index.jsp
+
+
\ No newline at end of file
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/index.jsp" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/index.jsp"
new file mode 100644
index 0000000..19ce291
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/WebRoot/index.jsp"
@@ -0,0 +1,26 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
+<%
+String path = request.getContextPath();
+String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
+%>
+
+
+
+
+
+
+ My JSP 'index.jsp' starting page
+
+
+
+
+
+
+
+
+
+ This is my JSP page.
+
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailReceive.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailReceive.java"
new file mode 100644
index 0000000..398fef3
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailReceive.java"
@@ -0,0 +1,226 @@
+package com.hzu.feirty.contorl;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.mail.Folder;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Part;
+import javax.mail.Store;
+
+import com.hzu.feirty.dao.EmailDaoImpl;
+import com.hzu.feirty.dao.HomeWorkDaoImpl;
+import com.hzu.feirty.dao.StudentDaoImpl;
+import com.hzu.feirty.dao.TeacherDaoImpl;
+import com.hzu.feirty.entity.Email;
+import com.hzu.feirty.entity.HomeWork;
+import com.hzu.feirty.entity.Student;
+import com.hzu.feirty.entity.Teacher;
+import com.hzu.feirty.utils.ConnUtil;
+import com.hzu.feirty.utils.GetFileSize;
+import com.hzu.feirty.utils.IOUtil;
+import com.sun.corba.se.impl.javax.rmi.CORBA.StubDelegateImpl;
+
+import javax.mail.internet.MimeMessage;
+
+
+public class MailReceive {
+ private String dateformat="yy-MM-dd HH:mm";//默认的日前显示格式
+
+ public static List getAllMail(String name) throws Exception{
+ List mailList = new ArrayList();
+ StudentDaoImpl stuDao = new StudentDaoImpl();
+ Student student = new Student();
+ student = stuDao.Search(name);
+ String number="";
+ String mailname = new TeacherDaoImpl().find2(student.getTeacher()).getMail_name();
+ String pwd = new TeacherDaoImpl().find2(student.getTeacher()).getMail_pwd();
+ Store store =ConnUtil.login("pop.qq.com",mailname,pwd);
+ Folder folder = store.getFolder("INBOX");
+ folder.open(Folder.READ_ONLY);
+ int mailCount = folder.getMessageCount();
+ if (mailCount == 0) {
+ folder.close(true);
+ store.close();
+ return null;
+ } else {
+ // 取得所有的邮件
+ Message[] messages = folder.getMessages();
+ for (int i = 0; i < messages.length; i++) {
+ Email mail = new Email();
+ PraseMimeMessage pmm = new PraseMimeMessage((MimeMessage)messages[i]);
+ //pmm.getSubject().contains("[作业]") ||pmm.getSubject().contains("[布置作业]"
+ String str=pmm.getSubject();
+ String regex = "[0-9]{13}"; //正则表达式
+ Pattern pattern = Pattern.compile(regex);
+ Matcher m = pattern.matcher(str);
+ if(m.find()){
+ number =m.group();
+ }else{
+ number ="";
+ }
+ if(!number.equals("")&& new StudentDaoImpl().isNumber2(number)){
+ mail.setFrom(pmm.getFrom());
+ System.out.println("发件人:"+pmm.getFrom());
+ mail.setSubject(pmm.getSubject());
+ System.out.println("主题:"+pmm.getSubject());
+ mail.setContent(pmm.getBodyText());
+ System.out.println("正文:"+pmm.getBodyText());
+ mail.setAttachmentname(pmm.getFilename((Part)messages[i]));
+ System.out.println("附件:"+pmm.getFilename((Part)messages[i]));
+ pmm.setDateFormat("yy.MM.dd-HH:mm");
+ mail.setSentdata(pmm.getSentDate());
+ System.out.println("发送时间:"+pmm.getSentDate());
+ //PraseMimeMessage reciveMail = new PraseMimeMessage((MimeMessage) messages[i]);
+ EmailDaoImpl eDaoImpl =new EmailDaoImpl();
+ eDaoImpl.Insert(mail);
+ mailList.add(mail);// 添加到邮件列表中
+ }
+ }
+ return mailList;
+ }
+ }
+ public static List getAllMailByTeacher(String name) throws Exception{
+ List mailList = new ArrayList();
+ TeacherDaoImpl tDao = new TeacherDaoImpl();
+ Teacher teacher = tDao.find2(name);
+ String number="";
+ String mail_name =teacher.getMail_name();
+ String mail_pwd = teacher.getMail_pwd();
+ Store store =ConnUtil.login("pop.qq.com",mail_name,mail_pwd);
+ Folder folder = store.getFolder("INBOX");
+ folder.open(Folder.READ_ONLY);
+ int mailCount = folder.getMessageCount();
+ if (mailCount == 0) {
+ folder.close(true);
+ store.close();
+ return null;
+ } else {
+ // 取得所有的邮件
+ Message[] messages = folder.getMessages();
+ for (int i = 0; i < messages.length; i++) {
+ Email mail = new Email();
+ PraseMimeMessage pmm = new PraseMimeMessage((MimeMessage)messages[i]);
+ //pmm.getSubject().contains("[作业]") ||pmm.getSubject().contains("[布置作业]"
+ String str=pmm.getSubject();
+ String regex = "[0-9]{13}"; //正则表达式
+ Pattern pattern = Pattern.compile(regex);
+ Matcher m = pattern.matcher(str);
+ if(m.find()){
+ number =m.group();
+ }else{
+ number ="";
+ }
+ if(!number.equals("")&& new StudentDaoImpl().isNumber(name, number)){
+ mail.setFrom(pmm.getFrom());
+ System.out.println(pmm.getFrom());
+ mail.setSubject(pmm.getSubject());
+ System.out.println(pmm.getSubject());
+ mail.setContent(pmm.getBodyText());
+ System.out.println(pmm.getBodyText());
+ pmm.setDateFormat("yy.MM.dd-HH:mm");
+ mail.setSentdata(pmm.getSentDate());
+ //PraseMimeMessage reciveMail = new PraseMimeMessage((MimeMessage) messages[i]);
+ EmailDaoImpl eDaoImpl =new EmailDaoImpl();
+ eDaoImpl.Insert(mail);
+ mailList.add(mail);// 添加到邮件列表中
+ }
+ }
+ return mailList;
+ }
+ }
+
+ public static int getAllMailByTeacher2(String name) throws Exception{
+ List mailList = new ArrayList();
+ TeacherDaoImpl tDao = new TeacherDaoImpl();
+ String number="";
+ Teacher teacher = tDao.find2(name);
+ String mail_name =teacher.getMail_name();
+ String mail_pwd = teacher.getMail_pwd();
+ Store store =ConnUtil.login("pop.qq.com",mail_name,mail_pwd);
+ //Store store =ConnUtil.login("pop.qq.com","1050416617@qq.com","jwovgwaypwrebecd");
+ Folder folder = store.getFolder("INBOX");
+ folder.open(Folder.READ_ONLY);
+ int mailCount = folder.getMessageCount();
+ if (mailCount == 0) {
+ folder.close(true);
+ store.close();
+ return -1;
+ } else {
+ // 取得所有的邮件
+ int i=0;
+ Message[] messages = folder.getMessages();
+ for (i = 0; i < messages.length; i++) {
+ Email mail = new Email();
+ PraseMimeMessage pmm = new PraseMimeMessage((MimeMessage)messages[i]);
+ //pmm.getSubject().contains("[作业]") ||pmm.getSubject().contains("[布置作业]"
+ String str=pmm.getSubject();
+ String regex = "[0-9]{13}"; //正则表达式
+ Pattern pattern = Pattern.compile(regex);
+ Matcher m = pattern.matcher(str);
+ if(m.find()){
+ number =m.group();
+ }else{
+ number ="";
+ }
+ if(!number.equals("")&& new StudentDaoImpl().isNumber(name, number)){
+ if(pmm.isContainAttach((Part)messages[i])){
+ File file=new File("c:\\temp\\");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ String senddate =pmm.getSentDate();
+ pmm.setAttachPath(file.toString());
+ pmm.saveAttachMent((Part)messages[i]);
+ String filename =pmm.getFilename();
+ File path = new File(file.toString()+"\\"+filename);
+ GetFileSize getFileSize = new GetFileSize();
+ String filesize =getFileSize.FormetFileSize(getFileSize.getFileSizes(path));
+ HomeWork homework =new HomeWork(number,filename,filesize,senddate);
+ boolean isInsert = new HomeWorkDaoImpl().Insert(homework);
+ }
+ }
+ mailList.add(mail);// 添加到邮件列表中
+ }
+ return i+1;
+ }
+ }
+ public static boolean getAllMailByNumber(String name) throws Exception{
+ //List mailList = new ArrayList();
+
+ Store store =ConnUtil.login("pop.qq.com",new TeacherDaoImpl().find2(name).getMail_name(),new TeacherDaoImpl().find2(name).getMail_name());
+ Folder folder = store.getFolder("INBOX");
+ folder.open(Folder.READ_ONLY);
+ int mailCount = folder.getMessageCount();
+ if (mailCount == 0) {
+ folder.close(true);
+ store.close();
+ return false;
+ } else {
+ // 取得所有的邮件
+ Message[] messages = folder.getMessages();
+ for (int i = 0; i < messages.length; i++) {
+ //Email mail = new Email();
+ PraseMimeMessage pmm = new PraseMimeMessage((MimeMessage)messages[i]);
+ if(pmm.getSubject().equals("学号")){
+ if(pmm.isContainAttach((Part)messages[i])){
+ File file=new File("c:\\tmp\\");
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ pmm.setAttachPath(file.toString());
+ pmm.saveAttachMent((Part)messages[i]);
+ IOUtil.Txt("c:\\tmp\\学号.txt");
+ }
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailSend.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailSend.java"
new file mode 100644
index 0000000..b271939
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailSend.java"
@@ -0,0 +1,155 @@
+package com.hzu.feirty.contorl;
+/**
+ * CrazyItTest
+ * 使用JavaMail发送带附件的电子邮件示例
+ */
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.util.Properties;
+import javax.activation.DataHandler;
+import javax.activation.FileDataSource;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.Message.RecipientType;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeUtility;
+/**
+ * @author Bill Tu
+ * @since May 26, 2011(21:03:36 PM)
+ *
+ */
+public class MailSend {
+ private static Session getSession(String protocol){
+ Properties mailProps=new Properties();
+ mailProps.put("mail.smtp.auth", "true");//向SMTP服务器提交用户认证
+ mailProps.put("mail.transport.protocol", protocol);//指定发送邮件协议
+
+ //getInstance每次都会拿一个新的session,而getDefaultInstance拿的是同一个session
+ Session session=Session.getDefaultInstance(mailProps);
+ //session.setDebug(true);//调试模式
+ return session;
+ }
+
+
+ private static void sendEmail(MimeMessage message,String protocol) throws MessagingException{
+ String host="smtp.163.com";//连接发送方的SMTP服务器
+ String user="iwtxokhtd";//用户名
+ String password="123456";//密码
+ //从session中取mail.smtp.protocol指定协议的Transport
+ Transport transport=getSession(protocol).getTransport();
+ //建立与指定的SMTP服务器的连接
+ transport.connect(host, user, password);
+ //发给所有指定的收件人,若使用message.getAllRecipients()则还包括抄送和暗送的人
+ transport.sendMessage(message, message.getRecipients(RecipientType.TO));
+ //关闭连接
+ transport.close();
+
+ /**
+ * Transport的send静态方法包括了connect,saveChanges,sendMessage,close等一系列操作,
+ * 但它连接同一个SMTP服务器每发一封邮件给服务器都得重新建立连接和断开连接,
+ * 虽然使用较方便,但开销较大,不值得推荐。
+ */
+ // Transport.send(message, message.getRecipients(RecipientType.TO));
+ }
+
+
+ private static MimeMessage getTextMessage(Session session) throws AddressException,
+ MessagingException, UnsupportedEncodingException{
+ MimeMessage message=new MimeMessage(session);
+ String from="iwtxokhtd@163.com";//发送方邮件地址
+ String to="277515433@qq.com";//接收方邮件地址
+
+ String subject="从163发到QQ来的邮件";//邮件主题,注意是中文的
+
+ String content="你好吗";//cid为my1.jpg,下文会设置此cid
+ //String content="你好吗";
+ message.setFrom(new InternetAddress(from));
+ message.setRecipient(RecipientType.TO, new InternetAddress(to));
+ message.setSubject(subject);
+ message.setSentDate(new Date());//发送时间
+ //message.setContent(content);
+
+ MimeBodyPart picBodyPart=getPicBodyPart(content,"F://My头像.jpg");
+ MimeBodyPart attached1BodyPart=getAttachedBodyPart("C://tmp//作业附件20170703.zip");//注意附件名是中文的
+ //MimeBodyPart attached2BodyPart=getAttachedBodyPart("F://nginx英文.doc");
+
+ MimeMultipart mmp=new MimeMultipart("mixed");//MIME消息头组合类型是mixed(html+附件)
+ mmp.addBodyPart(picBodyPart);
+ mmp.addBodyPart(attached1BodyPart);
+ //mmp.addBodyPart(attached2BodyPart);
+
+ message.setContent(mmp);
+ message.saveChanges();
+
+ return message;
+
+ }
+
+ /**
+ * 处理文件名
+ * 此处是针对Window下的。
+ * @param filePath
+ * @return
+ */
+ private static String doHandlerFileName(String filePath){
+ String fileName=filePath;
+ if(null !=filePath && !"".equals(filePath)){
+ fileName=filePath.substring(filePath.lastIndexOf("//")+1);
+ }
+ return fileName;
+ }
+
+
+ private static MimeBodyPart getAttachedBodyPart(String filePath) throws MessagingException,
+ UnsupportedEncodingException{
+ MimeBodyPart attached=new MimeBodyPart();
+ FileDataSource fds=new FileDataSource(filePath);
+ attached.setDataHandler(new DataHandler(fds));
+ String fileName=doHandlerFileName(filePath);
+ attached.setFileName(MimeUtility.encodeWord(fileName));//处理附件文件的中文名问题
+ return attached;
+ }
+
+ /**
+ * 处理html加图片的类型(related)
+ * @param content
+ * @param picName
+ * @return
+ * @throws MessagingException
+ */
+ private static MimeBodyPart getPicBodyPart(String content,String picName) throws MessagingException{
+ MimeBodyPart contentPart=new MimeBodyPart();
+
+ MimeMultipart mmp=new MimeMultipart("related");//此处MIME消息头组合类型为related
+ MimeBodyPart contented=new MimeBodyPart();
+ contented.setContent(content,"text/html;charset=gb2312");//因正文内容中有中文
+
+ mmp.addBodyPart(contented);
+
+ /*MimeBodyPart picBodyPart=new MimeBodyPart();
+ FileDataSource fds=new FileDataSource(picName);
+ picBodyPart.setDataHandler(new DataHandler(fds));
+ picBodyPart.setContentID("my1.jpg");//设置contentId
+
+ mmp.addBodyPart(picBodyPart); */
+
+ contentPart.setContent(mmp);
+
+ return contentPart;
+ }
+
+
+ public static void main(String[] args) throws AddressException,
+ MessagingException, FileNotFoundException, IOException {
+ String protocol="smtp";
+ sendEmail(getTextMessage(getSession(protocol)),protocol);
+
+ }
+}
\ No newline at end of file
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailSenter.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailSenter.java"
new file mode 100644
index 0000000..f99e04c
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailSenter.java"
@@ -0,0 +1,195 @@
+package com.hzu.feirty.contorl;
+import com.hzu.feirty.entity.Email;
+import com.sun.mail.util.MailSSLSocketFactory;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Properties;
+
+import javax.activation.CommandMap;
+import javax.activation.DataHandler;
+import javax.activation.FileDataSource;
+import javax.activation.MailcapCommandMap;
+import javax.mail.Address;
+import javax.mail.Authenticator;
+import javax.mail.Message;
+import javax.mail.Multipart;
+import javax.mail.PasswordAuthentication;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeUtility;
+
+import org.apache.commons.mail.DefaultAuthenticator;
+import org.apache.commons.mail.EmailAttachment;
+import org.apache.commons.mail.EmailException;
+import org.apache.commons.mail.MultiPartEmail;
+
+public class MailSenter {
+
+ private String host;
+ private String username;
+ private String password;
+
+ // private static final String SMTPHOST = "smtphost";
+ // private static final String USERNAME = "username";
+ // private static final String PASSWORD = "password";
+ // private static MailSenter instance;
+
+ // public static MailSenter getInstance(EditMailActivity context) {
+ // if (instance == null) {
+ // instance = new MailSenter(PreferencesUtil.getSharedStringData(context,
+ // SMTPHOST), PreferencesUtil.getSharedStringData(context, USERNAME),
+ // PreferencesUtil.getSharedStringData(context, PASSWORD));
+ // }
+ // return instance;
+ // }
+
+ /**
+ * 构造方法
+ *
+ * @param host 邮箱服务器
+ * @param username 邮箱用户全名。例如:test@qq.com
+ * @param password 邮箱用户密码
+ */
+ public MailSenter(String host, String username, String password) {
+ this.host = host;
+ this.username = username;
+ this.password = password;
+ }
+
+ /**
+ * 发送邮件
+ *
+ * @param mailTo 收件人email地址
+ * @param mailSubject 邮件标题
+ * @param mailBody 邮件正文
+ * @throws Exception
+ */
+ public void send(String mailTo, String mailSubject, String mailBody) throws Exception {
+ send(mailTo, mailSubject, mailBody, null, null);
+ }
+
+ /**
+ * 发送邮件
+ *
+ * @param email 邮件对象
+ * @throws Exception
+ */
+ public void send(Email email) throws Exception {
+ //send(email.getTo(), email.getSubject(), email.getContent(), email.getAttachments(), null);
+ }
+
+ /**
+ * 发送邮件
+ *
+ * @param mailTo 收件人email地址
+ * @param mailSubject 邮件标题
+ * @param mailBody 邮件正文
+ * @param attachments 附件
+ * @param personalName 邮件显示的发送人名称
+ * @throws Exception
+ */
+ public void send(String mailTo, String mailSubject, String mailBody, String attachments,
+ String personalName) throws Exception {
+ // TODO Auto-generated method stub
+ // Create the attachment
+ EmailAttachment attachment = new EmailAttachment();
+ //附件地址
+ attachment.setPath(attachments);
+ attachment.setDisposition(EmailAttachment.ATTACHMENT);
+ //附件说明
+ //attachment.setDescription("Picture of John");
+ //附件名称
+ //这里需要加上文件的后缀名
+ Integer a = attachments.indexOf("\\");
+ String aftera = attachments.substring(a+5);
+ attachment.setName(MimeUtility.encodeText(aftera));
+ // Create the email message
+ MultiPartEmail email = new MultiPartEmail();
+ //邮件服务器
+ email.setHostName("smtp.qq.com");
+ //端口号
+ email.setSmtpPort(25);
+ //用户名、密码
+ email.setAuthenticator(new DefaultAuthenticator(username, password));
+ //email.setSSLOnConnect(true);
+ email.setSSL(true);
+ try {
+ //收件人
+ email.addTo(mailTo, "老师");
+ //发件人
+ email.setFrom(username, personalName);
+ //标题
+ email.setSubject(mailSubject);
+ //内容
+ email.setMsg(mailBody);
+ // add the attachment
+ email.attach(attachment);
+ // send the email
+ email.send();
+ } catch (EmailException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ //try {
+ /*Properties props = new Properties();
+ // 开启debug调试
+ props.setProperty("mail.debug", "true");
+ // 发送服务器需要身份验证
+ props.setProperty("mail.smtp.auth", "true");
+ // 设置邮件服务器主机名
+ props.setProperty("mail.host", "smtp.qq.com");
+ // 发送邮件协议名称
+ props.setProperty("mail.transport.protocol", "smtp");
+ MailSSLSocketFactory sf = new MailSSLSocketFactory();
+ sf.setTrustAllHosts(true);
+ props.put("mail.smtp.ssl.enable", "true");
+ props.put("mail.smtp.ssl.socketFactory", sf);
+ Session session = Session.getInstance(props);
+ //邮件内容部分
+ Message msg = new MimeMessage(session);
+ msg.setSubject(mailSubject);
+ StringBuilder builder = new StringBuilder();
+ builder.append(mailBody);
+ msg.setText(builder.toString());
+ //邮件发送者
+ msg.setFrom(new InternetAddress(username));
+ Multipart mpRoot = new MimeMultipart();
+ MimeBodyPart mimeBodyPart = new MimeBodyPart();
+ mimeBodyPart.setContent(mailBody, "text/html;charset=gb2312");
+ mpRoot.addBodyPart(mimeBodyPart);
+ for (int i = 0; i < attachments.size(); i++) {
+ MimeBodyPart mpAttachments = new MimeBodyPart();
+ mpAttachments.setDataHandler(new DataHandler(new FileDataSource(attachments.get(i))));
+ mpAttachments.setFileName(MimeUtility.encodeText(attachments.get(i).substring
+ (attachments.get(i).lastIndexOf("/") + 1)));
+ mpRoot.addBodyPart(mpAttachments);
+ }
+ msg.setContent(mpRoot);
+ //发送邮件
+ Transport transport = session.getTransport();
+ transport.connect("smtp.qq.com", username, password);
+ transport.sendMessage(msg, new Address[] { new InternetAddress(mailTo) });
+ transport.close();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw new Exception(ex.getMessage());
+ }*/
+ }
+
+
+ /**
+ * 用来进行服务器对用户的认证
+ */
+ public class Email_Autherticator extends Authenticator {
+ @Override
+ public PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication(username, password);
+ }
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailToZip.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailToZip.java"
new file mode 100644
index 0000000..d8c4e30
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/contorl/MailToZip.java"
@@ -0,0 +1,105 @@
+package com.hzu.feirty.contorl;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.zip.ZipFile;
+//import java.util.zip.ZipEntry;
+//import java.util.zip.ZipOutputStream;
+import org.apache.tools.zip.ZipEntry;
+//import org.apache.tools.zip.ZipFile;
+import org.apache.tools.zip.ZipOutputStream;
+/**
+ * 将文件夹下面的文件
+ * 打包成zip压缩文件
+ *
+ * @author admin
+ *
+ */
+
+public class MailToZip {
+ private static final String CHINESE_CHARSET = "gbk";
+ private MailToZip(){}
+
+ /**
+ * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下
+ * @param sourceFilePath :待压缩的文件路径
+ * @param zipFilePath :压缩后存放路径
+ * @param fileName :压缩后文件的名称
+ * @return
+ */
+ public static boolean mailToZip(String sourceFilePath,String zipFilePath,String fileName){
+ boolean flag = false;
+ File sourceFile = new File(sourceFilePath);
+ FileInputStream fis = null;
+ BufferedInputStream bis = null;
+ FileOutputStream fos = null;
+ ZipOutputStream zos = null;
+ if(sourceFile.exists() == false){
+ System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在.");
+ }else{
+ try {
+ File zipFile = new File(zipFilePath + "/" + fileName +".zip");
+ if(zipFile.exists()){
+ System.out.println(zipFilePath + "目录下存在名字为:" + fileName +".zip" +"打包文件.");
+ }else{
+ File[] sourceFiles = sourceFile.listFiles();
+ if(null == sourceFiles || sourceFiles.length<1){
+ System.out.println("待压缩的文件目录:" + sourceFilePath + "里面不存在文件,无需压缩.");
+ }else{
+ fos = new FileOutputStream(zipFile);
+ zos = new ZipOutputStream(new BufferedOutputStream(fos));
+ zos.setEncoding(CHINESE_CHARSET);
+ byte[] bufs = new byte[1024*10];
+ for(int i=0;i";
+ return fromaddr;
+}
+/**
+* 获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同
+* "to"----收件人 "cc"---抄送人地址 "bcc"---密送人地址
+*/
+
+
+public String getMailAddress(String type)throws Exception{
+ String mailaddr = "";
+ String addtype = type.toUpperCase();
+ InternetAddress []address = null;
+ if(addtype.equals("TO") || addtype.equals("CC") ||addtype.equals("BCC")){
+ if(addtype.equals("TO")){
+ address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.TO);
+ }else if(addtype.equals("CC")){
+ address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.CC);
+ }else{
+ address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.BCC);
+ }
+ if(address != null){
+ for(int i=0;i";
+ mailaddr+=","+compositeto;
+ }
+ mailaddr=mailaddr.substring(1);
+ }
+ }
+ else{
+ throw new Exception("Error emailaddr type!");
+ }
+ return mailaddr;
+}
+
+
+/**
+* 获得邮件主题
+*/
+
+
+public String getSubject() throws MessagingException{
+ String subject = "";
+ try{
+ subject = MimeUtility.decodeText(mimeMessage.getSubject());
+ if(subject == null) subject="";
+ }catch(Exception exce){
+ }
+ return subject;
+}
+
+
+/**
+* 获得邮件发送日期
+* @return String
+*/
+
+
+public String getSentDate() throws Exception{
+ Date sentdate = mimeMessage.getSentDate();
+ SimpleDateFormat format = new SimpleDateFormat(dateformat);
+ return format.format(sentdate);
+}
+
+/**
+* 获得邮件发送日期
+* @return Date
+*/
+
+
+public Date getSentDate2() throws Exception{
+ Date sentdate = mimeMessage.getSentDate();
+ SimpleDateFormat format = new SimpleDateFormat(dateformat);
+ String date = format.format(sentdate);
+ Date date2 = format.parse(date);
+ return date2;
+}
+
+
+/**
+* 获得邮件正文内容
+*/
+
+
+public String getBodyText(){
+return bodytext.toString();
+}
+
+
+/**
+* 解析邮件,把得到的邮件内容保存到一个StringBuffer对象中,解析邮件
+* 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析
+*/
+
+public void getMailContent(Part part)throws Exception{
+ String contenttype = part.getContentType();
+ int nameindex = contenttype.indexOf("name");
+ boolean conname =false;
+ if(nameindex != -1) conname=true;
+ System.out.println("CONTENTTYPE: "+contenttype);
+ if(part.isMimeType("text/plain") && !conname){
+ bodytext.append((String)part.getContent());
+ }else if(part.isMimeType("text/html") && !conname){
+ bodytext.append((String)part.getContent());
+ }else if(part.isMimeType("multipart/*")){
+ Multipart multipart = (Multipart)part.getContent();
+ int counts = multipart.getCount();
+ for(int i=0;i list = new ArrayList();
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ Connection conn = null;
+
+
+ public StudentDaoImpl(){
+ super();
+ }
+ /**
+ * 添加用户学号数据
+ *
+ * @param news
+ * @throws SQLException
+ */
+ public boolean Save(Student user) throws SQLException {
+ conn = this.getConnection();
+ if(!find(user.getNumber())){
+ try {
+ pstmt = conn.prepareStatement("insert into student(number)values(?)");
+ //pstmt.setString(1, user.getName());
+ pstmt.setString(1, user.getNumber());
+ pstmt.executeUpdate();
+ return true;
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
+ }finally {
+ this.closeAll(null, pstmt, conn);
+ }
+ }
+ return false;
+ }
+ //添加 老师name、邮箱
+ public boolean update(Student user) throws SQLException {
+ conn = this.getConnection();
+ if(find(user.getNumber())){
+ try {
+ pstmt = conn.prepareStatement("update student set name=?,teacher=?,mail=?,school=? where number='"
+ + user.getNumber() + "'");
+ //pstmt.setString(1, user.getName());
+ pstmt.setString(1, user.getName());
+ pstmt.setString(2, user.getTeacher());
+ pstmt.setString(3, user.getMail());
+ pstmt.setString(4, user.getSchool());
+ pstmt.executeUpdate();
+ return true;
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
+ }finally {
+ this.closeAll(null, pstmt, conn);
+ }
+ }
+ return false;
+ }
+ //查找
+ public boolean find(String number) throws SQLException{
+ conn = this.getConnection();
+ pstmt = conn.prepareStatement("select * from student where number='" + number + "'");
+ rs = pstmt.executeQuery();
+ if (rs.next()) {
+ return true;
+ }else {
+ return false;
+ }
+ }
+
+ /**
+ * 查询某用户是否存在,根据usename
+ *
+ * @return
+ */
+ public Student Search(String name) {
+ conn = this.getConnection();
+ Student content = null;
+ try {
+ pstmt = conn.prepareStatement("select * from student where name='"
+ + name + "'");
+ rs = pstmt.executeQuery();
+ while (rs.next()) {
+ content = new Student();
+ content.setId(rs.getInt("id"));
+ content.setName(rs.getString("name"));
+ content.setTeacher(rs.getString("teacher"));
+ return content;
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } finally {
+ this.closeAll(rs, pstmt, conn);
+
+ }
+ return null;
+
+ }
+ /**
+ * 查询某用户是否存在,根据teacher
+ *
+ * @return
+ */
+ public boolean isNumber(String teacher,String number) {
+ conn = this.getConnection();
+ //Student content = null;
+ try {
+ pstmt = conn.prepareStatement("select * from student where teacher='"+ teacher + "'and number='"+number+"'");
+ rs = pstmt.executeQuery();
+ if(rs.next()) {
+ /*content = new Student();
+ content.setId(rs.getInt("id"));
+ content.setName(rs.getString("name"));
+ content.setTeacher(rs.getString("teacher"));*/
+ return true;
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } finally {
+ this.closeAll(rs, pstmt, conn);
+
+ }
+ return false;
+ }
+ public boolean isNumber2(String number) {
+ conn = this.getConnection();
+ //Student content = null;
+ try {
+ pstmt = conn.prepareStatement("select * from student where number='"+number+"'");
+ rs = pstmt.executeQuery();
+ if(rs.next()) {
+ /*content = new Student();
+ content.setId(rs.getInt("id"));
+ content.setName(rs.getString("name"));
+ content.setTeacher(rs.getString("teacher"));*/
+ return true;
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } finally {
+ this.closeAll(rs, pstmt, conn);
+
+ }
+ return false;
+
+ }
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/dao/TeacherDaoImpl.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/dao/TeacherDaoImpl.java"
new file mode 100644
index 0000000..f4955af
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/dao/TeacherDaoImpl.java"
@@ -0,0 +1,70 @@
+package com.hzu.feirty.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import com.hzu.feirty.entity.Teacher;
+import com.sun.org.apache.regexp.internal.recompile;
+
+
+public class TeacherDaoImpl extends BaseDaoImpl {
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ Connection conn = null;
+
+ //添加用户
+ public boolean add(Teacher user) throws Exception{
+ conn = this.getConnection();
+ try {
+ String sql = "insert into mailbyuser(user_teacher,mail_name,mail_pwd,peasonmail,school) values (?,?,?,?,?) ";
+ pstmt = conn.prepareStatement(sql);
+ pstmt.setString(1,user.getUser_teacher());
+ pstmt.setString(2,user.getMail_name());
+ pstmt.setString(3,user.getMail_pwd());
+ pstmt.setString(4,user.getPeasonmail());
+ pstmt.setString(5,user.getSchool());
+ pstmt.executeUpdate();
+ return true;
+ }catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
+ }
+ finally {this.closeAll(null, pstmt, conn);}
+ }
+
+ //查找
+ public boolean find(String name) throws SQLException{
+ conn = this.getConnection();
+ pstmt = conn.prepareStatement("select * from mailbyuser where user_teacher='" + name + "'");
+ rs = pstmt.executeQuery();
+ if (rs.next()) {
+ return true;
+ }else {
+ return false;
+ }
+ }
+
+ /**
+ * 查找老师的邮箱账号和密码
+ * @param name
+ * @return
+ * @throws SQLException
+ */
+ public Teacher find2(String name) throws SQLException{
+ conn = this.getConnection();
+ pstmt = conn.prepareStatement("select * from mailbyuser where nickname='" + name + "'");
+ rs = pstmt.executeQuery();
+ if (rs.next()) {
+ Teacher tea =new Teacher();
+ tea.setMail_name(rs.getString("mail_name"));
+ tea.setMail_pwd(rs.getString("mail_pwd"));
+ tea.setPeasonmail(rs.getString("peasonmail"));
+ return tea;
+ }else {
+ return null;
+ }
+ }
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/dao/UserDaoImpl.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/dao/UserDaoImpl.java"
new file mode 100644
index 0000000..62319c5
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/dao/UserDaoImpl.java"
@@ -0,0 +1,203 @@
+package com.hzu.feirty.dao;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.hzu.feirty.entity.User;
+
+public class UserDaoImpl extends BaseDaoImpl {
+ List list = new ArrayList();
+ PreparedStatement pstmt = null;
+ ResultSet rs = null;
+ Connection conn = null;
+
+ /**
+ * 查询所有用户
+ *
+ * @return
+ */
+ public List Search() {
+ conn = this.getConnection();
+ try {
+
+ pstmt = conn.prepareStatement("select * from user");
+ rs = pstmt.executeQuery();
+ while (rs.next()) {
+ User content = new User();
+ content.setId(rs.getInt("id"));
+ content.setUsername(rs.getString("username"));
+ content.setUserpwd(rs.getString("password"));
+ list.add(content);
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } finally {
+ this.closeAll(rs, pstmt, conn);
+
+ }
+ return list;
+ }
+
+ /**
+ * 查询所有用户
+ *
+ * @return
+ */
+ public String SearchType(String name) {
+ conn = this.getConnection();
+ try {
+
+ pstmt = conn.prepareStatement("select type from user where username='"+name+"'");
+ rs = pstmt.executeQuery();
+ if(rs.next()) {
+ return rs.getString("type");
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } finally {
+ this.closeAll(rs, pstmt, conn);
+
+ }
+ return null;
+ }
+ /**
+ * 查询某用户是否存在,根据usename
+ *
+ * @return
+ */
+ public User Search(String username) {
+ conn = this.getConnection();
+ User content = null;
+ try {
+
+ pstmt = conn.prepareStatement("select * from user where username='"
+ + username + "'");
+ rs = pstmt.executeQuery();
+ while (rs.next()) {
+ content = new User();
+ content.setId(rs.getInt("id"));
+ content.setUsername(rs.getString("username"));
+ content.setUserpwd(rs.getString("password"));
+ return content;
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } finally {
+ this.closeAll(rs, pstmt, conn);
+
+ }
+ return null;
+
+ }
+
+ /**
+ * 查询某用户是否存在,根据用户名跟密码
+ *
+ * @return
+ */
+ public List Search(String username, String password) {
+ conn = this.getConnection();
+ User content = null;
+ try {
+
+ pstmt = conn.prepareStatement("select * from user where username='"
+ + username + "'and password='" + password + "'");
+ rs = pstmt.executeQuery();
+ while (rs.next()) {
+ content = new User();
+ content.setId(rs.getInt("id"));
+ content.setUsername(rs.getString("username"));
+ content.setUserpwd(rs.getString("password"));
+ list.add(content);
+ }
+
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } finally {
+ this.closeAll(rs, pstmt, conn);
+
+ }
+ return list;
+
+ }
+
+ /**
+ * 添加用户数据
+ *
+ * @param news
+ */
+ public boolean Save(User user) {
+ conn = this.getConnection();
+ try {
+ pstmt = conn
+ .prepareStatement("insert into user(username,password,type)values(?,?,?)");
+ pstmt.setString(1, user.getUsername());
+ pstmt.setString(2, user.getUserpwd());
+ pstmt.setString(3, "0");
+ pstmt.executeUpdate();
+ return true;
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
+ } finally {
+ this.closeAll(null, pstmt, conn);
+ }
+ }
+
+ /**
+ * 用户修改密码或者其他信息
+ *
+ * @param news
+ */
+ public boolean update_message(User user) {
+ conn = this.getConnection();
+ try {
+ pstmt = conn
+ .prepareStatement("update user set password=? where username='"
+ + user.getUsername() + "'");
+
+ pstmt.setString(1, user.getUserpwd());
+ pstmt.executeUpdate();
+ return true;
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
+ } finally {
+ this.closeAll(null, pstmt, conn);
+ }
+ }
+
+ /**
+ * 用户修改type
+ *
+ * @param news
+ */
+ public boolean updateType(String type,String name) {
+ conn = this.getConnection();
+ try {
+ pstmt = conn
+ .prepareStatement("update user set type=? where username='"
+ + name + "'");
+ pstmt.setString(1, type);
+ pstmt.executeUpdate();
+ return true;
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
+ } finally {
+ this.closeAll(null, pstmt, conn);
+ }
+ }
+}
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Construction.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Construction.java"
new file mode 100644
index 0000000..adb98db
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Construction.java"
@@ -0,0 +1,51 @@
+package com.hzu.feirty.entity;
+
+import java.sql.Date;
+
+public class Construction {
+ private String teacher_name;
+ private long number;
+ private String zipname;
+ private String zipsize;
+ private Date time;
+
+ public Construction(String teacher_name,long number,String zipname,String zipsize,Date time){
+ this.teacher_name = teacher_name;
+ this.number= number;
+ this.zipname = zipname;
+ this.zipsize = zipsize;
+ this.time = time;
+
+ }
+ public String getTeacher_name() {
+ return teacher_name;
+ }
+ public void setTeacher_name(String teacher_name) {
+ this.teacher_name = teacher_name;
+ }
+ public long getNumber() {
+ return number;
+ }
+ public void setNumber(int number) {
+ this.number = number;
+ }
+ public String getZipname() {
+ return zipname;
+ }
+ public void setZipname(String zipname) {
+ this.zipname = zipname;
+ }
+ public String getZipsize() {
+ return zipsize;
+ }
+ public void setZipsize(String zipsize) {
+ this.zipsize = zipsize;
+ }
+ public Date getTime() {
+ return time;
+ }
+ public void setTime(Date time) {
+ this.time = time;
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Email.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Email.java"
new file mode 100644
index 0000000..96e6f5c
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Email.java"
@@ -0,0 +1,152 @@
+/**
+ *Email()类实现Email属性的封装
+ * 包括属性:
+ * --messageID--email的ID,--from--发件地址,--to--收件人地址,--cc--抄送地址,---bcc--密送地址
+ * --subject--邮件主题,--sentdata--发送的内容,--content--内容
+ * --boolean类型:--replysign-- --html--- ---news--
+ * --attachments--字符串数组
+ */
+package com.hzu.feirty.entity;
+import java.util.ArrayList;
+
+public class Email {
+
+ private static final long serialVersionUID = 1L;
+ private String messageID;
+ private String from;
+ private String to;
+ private String cc;
+ private String bcc;
+ private String subject;
+ private String sentdata;
+ private String content;
+ private boolean replysign;
+ private boolean html;
+ private boolean news;
+ private ArrayList attachments;
+ private String attachmentname;
+ public String getAttachmentname() {
+ return attachmentname;
+ }
+
+ public void setAttachmentname(String attachmentname) {
+ this.attachmentname = attachmentname;
+ }
+
+ private String charset;
+
+
+ public Email(){
+ super();
+ }
+
+ public Email(String sub,String to,String content){
+ this.to = to;
+ this.subject = sub;
+ this.content = content;
+ }
+
+ public String getMessageID() {
+ return messageID;
+ }
+
+ public void setMessageID(String messageID) {
+ this.messageID = messageID;
+ }
+
+ public String getFrom() {
+ return from;
+ }
+
+ public void setFrom(String string) {
+ this.from = string;
+ }
+
+ public String getTo() {
+ return to;
+ }
+
+ public void setTo(String to) {
+ this.to = to;
+ }
+
+ public String getCc() {
+ return cc;
+ }
+
+ public void setCc(String cc) {
+ this.cc = cc;
+ }
+
+ public String getBcc() {
+ return bcc;
+ }
+
+ public void setBcc(String bcc) {
+ this.bcc = bcc;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public String getSentdata() {
+ return sentdata;
+ }
+
+ public void setSentdata(String sentdata) {
+ this.sentdata = sentdata;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public boolean isReplysign() {
+ return replysign;
+ }
+
+ public void setReplysign(boolean replysign) {
+ this.replysign = replysign;
+ }
+
+ public boolean isHtml() {
+ return html;
+ }
+
+ public void setHtml(boolean html) {
+ this.html = html;
+ }
+
+ public boolean isNews() {
+ return news;
+ }
+
+ public void setNews(boolean news) {
+ this.news = news;
+ }
+
+ public String getCharset() {
+ return charset;
+ }
+
+ public void setCharset(String charset) {
+ this.charset = charset;
+ }
+ public ArrayList getAttachments() {
+ return attachments;
+ }
+
+ public void setAttachments(ArrayList attachments) {
+ this.attachments = attachments;
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/HomeWork.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/HomeWork.java"
new file mode 100644
index 0000000..5f81618
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/HomeWork.java"
@@ -0,0 +1,52 @@
+package com.hzu.feirty.entity;
+
+public class HomeWork {
+ private int id;
+ private String stu_id;
+ private String file_name;
+ private String file_size;
+ private String file_time;
+
+ public HomeWork(){
+ super();
+ }
+ public HomeWork(String stu_id,String file_name,String file_size,String file_time){
+ this.stu_id =stu_id;
+ this.file_name =file_name;
+ this.file_size =file_size;
+ this.file_time = file_time;
+ }
+
+
+ public String getFile_time() {
+ return file_time;
+ }
+ public void setFile_time(String file_time) {
+ this.file_time = file_time;
+ }
+ public int getId() {
+ return id;
+ }
+ public void setId(int id) {
+ this.id = id;
+ }
+ public String getStu_id() {
+ return stu_id;
+ }
+ public void setStu_id(String stu_id) {
+ this.stu_id = stu_id;
+ }
+ public String getFile_name() {
+ return file_name;
+ }
+ public void setFile_name(String file_name) {
+ this.file_name = file_name;
+ }
+ public String getFile_size() {
+ return file_size;
+ }
+ public void setFile_size(String file_size) {
+ this.file_size = file_size;
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Student.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Student.java"
new file mode 100644
index 0000000..39ea27a
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Student.java"
@@ -0,0 +1,57 @@
+package com.hzu.feirty.entity;
+
+public class Student {
+ private Integer id;
+ private String name;
+ private String number;
+ private Integer worksnumber;
+ private String mail;
+ private String teacher;
+ private String school;
+ public Student(){
+ super();
+ }
+ public String getSchool() {
+ return school;
+ }
+ public void setSchool(String school) {
+ this.school = school;
+ }
+ public String getMail() {
+ return mail;
+ }
+ public void setMail(String mail) {
+ this.mail = mail;
+ }
+ public String getTeacher() {
+ return teacher;
+ }
+ public void setTeacher(String teacher) {
+ this.teacher = teacher;
+ }
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getNumber() {
+ return number;
+ }
+ public void setNumber(String number) {
+ this.number = number;
+ }
+ public Integer getWorksnumber() {
+ return worksnumber;
+ }
+ public void setWorksnumber(Integer worksnumber) {
+ this.worksnumber = worksnumber;
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Teacher.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Teacher.java"
new file mode 100644
index 0000000..694d6ea
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/Teacher.java"
@@ -0,0 +1,72 @@
+package com.hzu.feirty.entity;
+
+public class Teacher {
+ private Integer id;
+ private String user_teacher;
+ private String mail_name;
+ private String mail_pwd;
+ private String school;
+ private String peasonmail;
+ private String nickname;
+
+ public String getNickname() {
+ return nickname;
+ }
+ public void setNickname(String nikename) {
+ this.nickname = nikename;
+ }
+ public Teacher(){
+ super();
+ }
+ public Teacher(String teaher,String mailname,String pwd,String school ,String peasonmail,String nickname){
+ this.user_teacher=teaher;
+ this.mail_name= mailname;
+ this.mail_pwd=pwd;
+ this.school=school;
+ this.peasonmail=peasonmail;
+ this.nickname= nickname;
+ }
+
+ public String getPeasonmail() {
+ return peasonmail;
+ }
+ public void setPeasonmail(String peasonmail) {
+ this.peasonmail = peasonmail;
+ }
+ public String getSchool() {
+ return school;
+ }
+ public void setSchool(String school) {
+ this.school = school;
+ }
+ public Teacher(String user,String name,String pwd){
+ this.user_teacher = user;
+ this.mail_name = name;
+ this.mail_pwd = pwd;
+ }
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public String getUser_teacher() {
+ return user_teacher;
+ }
+ public void setUser_teacher(String user_teacher) {
+ this.user_teacher = user_teacher;
+ }
+ public String getMail_name() {
+ return mail_name;
+ }
+ public void setMail_name(String mail_name) {
+ this.mail_name = mail_name;
+ }
+ public String getMail_pwd() {
+ return mail_pwd;
+ }
+ public void setMail_pwd(String mail_pwd) {
+ this.mail_pwd = mail_pwd;
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/User.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/User.java"
new file mode 100644
index 0000000..73ab287
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/entity/User.java"
@@ -0,0 +1,40 @@
+package com.hzu.feirty.entity;
+
+public class User {
+ private Integer id;
+ private String username;
+ private String userpwd;
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ private String type;
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public String getUsername() {
+ return username;
+ }
+ public void setUsername(String username) {
+ this.username = username;
+ }
+ public String getUserpwd() {
+ return userpwd;
+ }
+ public void setUserpwd(String userpwd) {
+ this.userpwd = userpwd;
+ }
+ public User( String username, String password){
+ this.username= username;
+ this.userpwd = password;
+ }
+ public User(){
+ super();
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetMail.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetMail.java"
new file mode 100644
index 0000000..6c9a8fd
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetMail.java"
@@ -0,0 +1,213 @@
+package com.hzu.feirty.servlet;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.mail.MessagingException;
+import javax.mail.Part;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.hzu.feirty.contorl.MailReceive;
+import com.hzu.feirty.contorl.MailSenter;
+import com.hzu.feirty.contorl.MailToZip;
+import com.hzu.feirty.contorl.PraseMimeMessage;
+import com.hzu.feirty.dao.ConstructionDaoImpl;
+import com.hzu.feirty.dao.TeacherDaoImpl;
+import com.hzu.feirty.dao.UserDaoImpl;
+import com.hzu.feirty.entity.Construction;
+import com.hzu.feirty.entity.Email;
+import com.hzu.feirty.entity.Teacher;
+import com.hzu.feirty.utils.GetFileSize;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+public class DoGetMail extends HttpServlet {
+ private ArrayList> attachmentsInputStreamsList = new ArrayList>();
+ ArrayList attachments= new ArrayList();
+ private List maillist;
+ //ArrayList attachments;
+ public DoGetMail() {
+ super();
+ }
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ }
+
+/**
+ * 邮件处理类
+ *
+ *
+ */
+ public void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ response.setCharacterEncoding("utf-8");
+ request.setCharacterEncoding("utf-8");
+ String action = request.getParameter("action");
+ String user = request.getParameter("user");
+ PrintWriter out = response.getWriter();
+ JSONObject array = new JSONObject();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String time = sdf.format(new Date());
+ if(action.equals("send")){
+ String subject = request.getParameter("subject");
+ String to = request.getParameter("to");
+ String content = request.getParameter("content");
+ try {
+ Teacher teacher =new TeacherDaoImpl().find2(user);
+ MailSenter mailsend =new MailSenter("smtp.qq.com",teacher.getMail_name(), teacher.getMail_pwd());
+ mailsend.send(to,subject,content);
+ array.put("code", "success");
+ array.put("msg", "发送成功");
+ array.put("data", "");
+ System.out.println("发送成功!");
+ } catch (Exception e) {
+ e.printStackTrace();
+ array.put("code", "succ");
+ array.put("msg", "发布作业失败");
+ array.put("data", "");
+ System.out.println("发布作业失败!");
+ }
+ }else if(action.equals("receive")){
+ JSONArray arrays = new JSONArray();
+ try {
+ String str =new UserDaoImpl().SearchType(user);
+ if(str.equals("teacher")){
+ maillist = MailReceive.getAllMailByTeacher(user);
+ array.put("code", "success");
+ array.put("msg", "11");
+ for (int i = 0; i < maillist.size(); i++) {
+ JSONObject object = new JSONObject();
+ object.put("from", maillist.get(i).getFrom());
+ object.put("subject", maillist.get(i).getSubject());
+ object.put("content", maillist.get(i).getContent());
+ object.put("time", maillist.get(i).getSentdata());
+ arrays.add(object);
+ }
+ array.put("data", arrays.toString());
+ }else if(str.equals("student")){
+ maillist = MailReceive.getAllMail(user);
+ array.put("code", "success");
+ array.put("msg", "11");
+ for (int i = 0; i < maillist.size(); i++) {
+ JSONObject object = new JSONObject();
+ object.put("from", maillist.get(i).getFrom());
+ object.put("subject", maillist.get(i).getSubject());
+ object.put("content", maillist.get(i).getContent());
+ //System.out.println(maillist.get(i).getContent());
+ object.put("time", maillist.get(i).getSentdata());
+ //object.put("attachment", mails.get(i).getAttachments());
+ arrays.add(object);
+ }
+ array.put("data", arrays.toString());
+ }else{
+ array.put("code", "false");
+ array.put("msg", "11");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }else if(action.equals("receive2")){
+ try {
+ array.put("code", "success");
+ array.put("msg", "作业下载成功");
+ array.put("data", "");
+ System.out.println("作业下载成功");
+ maillist = MailReceive.getAllMailByTeacher(user);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ array.put("code", "suc");
+ array.put("msg", "作业下载失败");
+ array.put("data", "");
+ System.out.println("作业下载失败");
+ }
+ }
+ else if(action.equals("number")){
+ try {
+ array.put("code", "success");
+ array.put("msg", "学号添加成功");
+ array.put("data", "");
+ if(MailReceive.getAllMailByNumber("abc")){
+ System.out.println("学号添加成功");
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ array.put("code", "suc");
+ array.put("msg", "学号添加失败");
+ array.put("data", "");
+ System.out.println("学号添加失败");
+ }
+ }else if(action.equals("RECEIVEHOMEWORK")){
+ try {
+ String type=new UserDaoImpl().SearchType(user);
+ if(type.equals("teacher")){
+ Teacher teacher = new TeacherDaoImpl().find2(user);
+ if(!teacher.getPeasonmail().equals("")){
+ int i = MailReceive.getAllMailByTeacher2(user);
+ array.put("code", "success");
+ File sourceFilePath=new File("c:\\temp\\");
+ File zipFilePath=new File("c:\\tmp\\");
+ String fileName="作业附件";
+ DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm");
+ String date =dateFormat.format(new Date());
+ MailToZip.mailToZip(sourceFilePath.toString(), zipFilePath.toString(), fileName+date);
+ System.out.println("作业打包成功!");
+ File zippath = new File(zipFilePath.toString()+"\\"+fileName+date+".zip");
+ String attachments = zippath.toString();
+ String mailname = teacher.getMail_name();
+ String mailpwd = teacher.getMail_pwd();
+ String peason_mail = teacher.getPeasonmail();
+ MailSenter mailsend =new MailSenter("smtp.qq.com", mailname, mailpwd);
+ mailsend.send(peason_mail,fileName+date,fileName+date,attachments,"收发作业系统");
+ System.out.println("作业zip发送成功!");
+ String send_date =dateFormat.format(new Date());
+ GetFileSize getFileSize = new GetFileSize();
+ String zip_size =getFileSize.FormetFileSize(getFileSize.getFileSizes(zippath));
+ String zip_name = fileName+send_date+".zip";
+ GetFileSize g = new GetFileSize();
+ long filenumber= g.getlist(sourceFilePath);
+ //Date sendDate = new Date();
+ java.sql.Date sendtime= new java.sql.Date(new java.util.Date().getTime());
+ ConstructionDaoImpl constructionDaoImpl = new ConstructionDaoImpl();
+ Construction construction = new Construction(user, filenumber, zip_name, zip_size,sendtime);
+ constructionDaoImpl.Insert(construction);
+ array.put("msg", "作业打包成功");
+ array.put("zipname",zip_name);
+ array.put("zipsize", zip_size);
+ array.put("senddate", send_date);
+ array.put("data", "");
+ }else{
+ array.put("code", "nomail");
+ array.put("msg", "nomail");
+ array.put("data", "");
+ }
+ }else{
+ array.put("code", "noidentry");
+ array.put("msg", "noidentry");
+ array.put("data", "");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ array.put("code", "false");
+ array.put("msg", "收作业失败");
+ array.put("data", "");
+ System.out.println("收作业失败");
+ }
+ }
+ out.print(array);
+ out.flush();
+ out.close();
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetStudent.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetStudent.java"
new file mode 100644
index 0000000..f178622
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetStudent.java"
@@ -0,0 +1,103 @@
+package com.hzu.feirty.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.sql.SQLException;
+
+import javax.mail.Store;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import net.sf.json.JSONObject;
+
+import com.hzu.feirty.contorl.MailReceive;
+import com.hzu.feirty.dao.StudentDaoImpl;
+import com.hzu.feirty.dao.TeacherDaoImpl;
+import com.hzu.feirty.dao.UserDaoImpl;
+import com.hzu.feirty.entity.Student;
+import com.hzu.feirty.entity.Teacher;
+import com.hzu.feirty.entity.User;
+import com.hzu.feirty.utils.ConnUtil;
+
+public class DoGetStudent extends HttpServlet {
+ private String mail;
+ private String pwd;
+ public DoGetStudent() {
+ super();
+ }
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ }
+ public void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ response.setCharacterEncoding("utf-8");
+ request.setCharacterEncoding("utf-8");
+ String action = request.getParameter("action");
+ PrintWriter out = response.getWriter();
+ JSONObject array = new JSONObject();
+ if(action.equals("SAVESET")){
+ String teacher = request.getParameter("teacher");
+ String school = request.getParameter("school");
+ String number = request.getParameter("number");
+ String peasonmail = request.getParameter("mail");
+ String username = request.getParameter("user");
+ TeacherDaoImpl teaDao = new TeacherDaoImpl();
+ StudentDaoImpl stuDao = new StudentDaoImpl();
+ try {
+ boolean a = stuDao.find(number);
+ boolean b = teaDao.find(teacher);
+ //判断学号和老师姓名存在
+ if(a&&b){
+ //更新学生的信息
+ Student stu= new Student();
+ stu.setNumber(number);
+ stu.setName(username);
+ stu.setTeacher(teacher);
+ stu.setMail(peasonmail);
+ stu.setSchool(school);
+ if(stuDao.update(stu)){
+ try {
+ array.put("code", "success");
+ array.put("msg", "发送成功");
+ array.put("mail",mail);
+ array.put("pwd", pwd);
+ array.put("data", "");
+ System.out.println("发送成功!");
+ } catch (Exception e) {
+ e.printStackTrace();
+ array.put("code", "succ");
+ array.put("msg", "发送失败");
+ array.put("data", "");
+ System.out.println("发送失败!");
+ }
+ }else{
+ array.put("code", "success");
+ array.put("msg", "插入异常");
+ System.out.println("插入异常!");
+ }
+ //new UserDaoImpl().updateType("student", username);
+ /* Teacher tea =teaDao.find2(teacher);
+ mail = tea.getMail_name();
+ pwd =tea.getMail_pwd();*/
+
+ }else{
+ array.put("code", "succ");
+ array.put("msg", "失败");
+ array.put("data", "");
+ System.out.println("发送失败!");
+
+ }
+ }catch (SQLException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ out.print(array);
+ out.flush();
+ out.close();
+
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetTeacher.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetTeacher.java"
new file mode 100644
index 0000000..b8558b7
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetTeacher.java"
@@ -0,0 +1,80 @@
+package com.hzu.feirty.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+import javax.mail.Store;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import net.sf.json.JSONObject;
+
+import com.hzu.feirty.contorl.MailReceive;
+import com.hzu.feirty.contorl.MailSenter;
+import com.hzu.feirty.dao.TeacherDaoImpl;
+import com.hzu.feirty.entity.Email;
+import com.hzu.feirty.entity.Teacher;
+import com.hzu.feirty.utils.ConnUtil;
+import com.sun.org.apache.bcel.internal.generic.POP;
+
+public class DoGetTeacher extends HttpServlet {
+ private List maillist;
+
+ public DoGetTeacher() {
+ super();
+ }
+
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+
+ }
+
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ response.setCharacterEncoding("utf-8");
+ request.setCharacterEncoding("utf-8");
+ String action = request.getParameter("action");
+ PrintWriter out = response.getWriter();
+ JSONObject array = new JSONObject();
+ if(action.equals("SAVESET")){
+ String name = request.getParameter("name");
+ String school = request.getParameter("school");
+ String workmail = request.getParameter("workmail");
+ String mailpwd = request.getParameter("pwd");
+ String user = request.getParameter("user");
+ String peasonmail = request.getParameter("peasonmail");
+ try {
+ Teacher teacher = new Teacher(name,workmail,mailpwd,school,peasonmail,user);
+ new TeacherDaoImpl().add(teacher);
+ if(MailReceive.getAllMailByNumber(name)){
+ array.put("code", "success");
+ array.put("msg", "发送成功");
+ array.put("data", "");
+ System.out.println("教师信息收集完成!");
+ }else{
+ array.put("code", "false");
+ array.put("msg", "发送失败");
+ array.put("data", "");
+ System.out.println("学号信息收集失败!");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ array.put("code", "succ");
+ array.put("msg", "发送失败");
+ array.put("data", "");
+ System.out.println("收集异常失败!");
+ }
+
+ }
+ out.print(array);
+ out.flush();
+ out.close();
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetType.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetType.java"
new file mode 100644
index 0000000..5dc4934
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetType.java"
@@ -0,0 +1,115 @@
+package com.hzu.feirty.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import net.sf.json.JSONObject;
+
+import com.hzu.feirty.contorl.MailSenter;
+import com.hzu.feirty.dao.TeacherDaoImpl;
+import com.hzu.feirty.dao.UserDaoImpl;
+import com.hzu.feirty.entity.Teacher;
+
+public class DoGetType extends HttpServlet {
+ public DoGetType(){
+ super();
+ }
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ }
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ response.setCharacterEncoding("utf-8");
+ request.setCharacterEncoding("utf-8");
+ String action = request.getParameter("action");
+ String user = request.getParameter("user");
+ PrintWriter out = response.getWriter();
+ JSONObject array = new JSONObject();
+ if(action.equals("istype")){
+ try {
+ String type=new UserDaoImpl().SearchType(user);
+ if(type.equals("teacher")){
+ array.put("code", "teacher");
+ array.put("msg", "验证成功");
+ array.put("data", "");
+ System.out.println("验证成功!");
+ }else if(type.equals("student")){
+ array.put("code", "student");
+ array.put("msg", "验证成功");
+ array.put("data", "");
+ System.out.println("验证成功!");
+ }else{
+ array.put("code", "false");
+ array.put("msg", "验证失败");
+ array.put("data", "");
+ System.out.println("验证失败!");
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ array.put("code", "error");
+ array.put("msg", "未知错误");
+ array.put("data", "");
+ System.out.println("未知错误!");
+ }
+ }else if(action.equals("settype2")){
+ try {
+ String type = request.getParameter("type");
+ boolean a =new UserDaoImpl().updateType(type, user);
+ if(a){
+ array.put("code", "success");
+ array.put("msg", "设置身份成功");
+ array.put("data", "");
+ System.out.println("设置身份成功");
+ }else{
+ array.put("code", "false");
+ array.put("msg", "身份设置失败");
+ array.put("data", "");
+ System.out.println("身份设置失败");
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ array.put("code", "error");
+ array.put("msg", "未知错误");
+ array.put("data", "");
+ System.out.println("未知错误!");
+ }
+ }
+ else if(action.equals("settype")){
+ try {
+ String type=new UserDaoImpl().SearchType(user);
+ if(type.equals("teacher")||type.equals("student")||type.equals("student")){
+ array.put("code", "success");
+ array.put("msg", "已选择身份");
+ array.put("data", "");
+ System.out.println("已选择身份");
+ }else{
+ array.put("code", "false");
+ array.put("msg", "请选择身份");
+ array.put("data", "");
+ System.out.println("请选择身份");
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ array.put("code", "error");
+ array.put("msg", "未知错误");
+ array.put("data", "");
+ System.out.println("未知错误!");
+ }
+ }
+ out.print(array);
+ out.flush();
+ out.close();
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetUser.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetUser.java"
new file mode 100644
index 0000000..397fb46
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/servlet/DoGetUser.java"
@@ -0,0 +1,79 @@
+package com.hzu.feirty.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import net.sf.json.JSONObject;
+
+import com.hzu.feirty.dao.UserDaoImpl;
+import com.hzu.feirty.entity.User;
+
+public class DoGetUser extends HttpServlet {
+
+ /**
+ * Constructor of the object.
+ */
+ public DoGetUser() {
+ super();
+ }
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ response.setCharacterEncoding("utf-8");
+ request.setCharacterEncoding("utf-8");
+ String action = request.getParameter("action");
+ PrintWriter out = response.getWriter();
+ JSONObject array = new JSONObject();
+ UserDaoImpl ndi = new UserDaoImpl();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String time = sdf.format(new Date());
+ if (action.equals("login")) {
+ String user = request.getParameter("user");
+ String password = request.getParameter("password");
+ List list = new ArrayList();
+ list = ndi.Search(user, password);
+ if (list.size() < 1) {
+ array.put("code", "failure");
+ array.put("msg", "用户名或密码不正确");
+ array.put("data", "");
+ } else {
+ System.out.println("\n用户" + user+ "登陆成功" + "\ntime" + time );
+ array.put("code", "success");
+ array.put("msg", "登陆成功");
+ array.put("data", list.get(0));
+ }
+ } else if (action.equals("save")) {
+
+ String username = request.getParameter("user");
+ String password = request.getParameter("password");
+ User users = new User(username, password);
+ if (ndi.Save(users)) {
+ array.put("code", "success");
+ array.put("msg", "注册成功");
+ System.out.println("\n用户" + username + "注册成功" + "\ntime:" + time);
+ } else {
+ array.put("code", "failure");
+ array.put("msg", "注册失败");
+ }
+ }
+ out.print(array);
+ out.flush();
+ out.close();
+ }
+
+ public void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ this.doPost(request, response);
+
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/ConnUtil.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/ConnUtil.java"
new file mode 100644
index 0000000..7da2a7c
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/ConnUtil.java"
@@ -0,0 +1,68 @@
+
+package com.hzu.feirty.utils;
+
+import java.util.Properties;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Store;
+
+//连接邮件服务器邮件接收util类
+public class ConnUtil {
+ private static Store store = null;
+ public static Store login(String host, String user, String password) {
+ // 连接服务器
+ Properties props = System.getProperties();
+ Session session = Session.getDefaultInstance(props);
+ try {
+ // 准备连接服务器的会话信息
+ /* Properties props = System.getProperties();
+ props.setProperty("mail.store.protocol", "pop");
+ props.setProperty("mail.imap.host", "imap.qq.com");
+ props.setProperty("mail.imap.port", "143");
+ */
+ /** QQ邮箱需要建立ssl连接 */
+ props.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+ props.setProperty("mail.pop3.socketFactory.fallback", "false");
+ props.setProperty("mail.pop3.starttls.enable","true");
+ props.setProperty("mail.pop3.port", "995");
+ props.setProperty("mail.pop3.socketFactory.port", "995");
+ // 创建Session实例对象
+ // Session session = Session.getInstance(props); //pop3/smtp :jwovgwaypwrebecd
+ store = session.getStore("pop3");
+ store.connect(host, user, password);
+ }
+ catch (MessagingException e) {
+ e.printStackTrace();
+ return null;
+ }
+ return store;
+ }
+
+ public static String getPOP3Host(String user) {
+ if (user.contains("qq")) {
+ return "pop.qq.com";
+ }
+ if (user.contains("163")) {
+ return "pop.163.com";
+ }
+ if (user.contains("126")) {
+ return "pop.126.com";
+ }else
+ return null;
+ }
+
+ public static String getSMTPHost(String user) {
+ if (user.contains("qq")) {
+ return "smtp.qq.com";
+ }
+ if (user.contains("163")) {
+ return "smtp.163.com";
+ }
+ if (user.contains("126")) {
+ return "smtp.126.com";
+ } else {
+ return null;
+ }
+ }
+
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/ExportExcel.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/ExportExcel.java"
new file mode 100644
index 0000000..99fbb07
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/ExportExcel.java"
@@ -0,0 +1,235 @@
+package com.hzu.feirty.utils;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.text.SimpleDateFormat;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
+import org.apache.poi.hssf.usermodel.HSSFComment;
+import org.apache.poi.hssf.usermodel.HSSFFont;
+import org.apache.poi.hssf.usermodel.HSSFPatriarch;
+import org.apache.poi.hssf.usermodel.HSSFRichTextString;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.hssf.util.HSSFColor;
+
+/**
+ * 利用开源组件POI3.0.2动态导出EXCEL文档
+ *
+ * @version v1.0
+ * @param
+ * 应用泛型,代表任意一个符合javabean风格的类
+ * 注意这里为了简单起见,boolean型的属性xxx的get器方式为getXxx(),而不是isXxx()
+ * byte[]表jpg格式的图片数据
+ */
+public class ExportExcel {
+ public static final String FILE_SEPARATOR = System.getProperties()
+ .getProperty("file.separator");
+
+ public void exportExcel(Collection dataset, OutputStream out) {
+ exportExcel("测试POI导出EXCEL文档", null, dataset, out, "yyyy-MM-dd");
+ }
+ //该方法自己修改了,将表格头传入的方式
+ public void exportExcel(String title,String[] headers, Collection dataset,
+ OutputStream out) {
+ exportExcel(title, headers, dataset, out, "yyyy-MM-dd");
+ }
+
+ public void exportExcel(String[] headers, Collection dataset,
+ OutputStream out, String pattern) {
+ exportExcel("测试POI导出EXCEL文档", headers, dataset, out, pattern);
+ }
+
+ /**
+ * 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出到指定IO设备上
+ *
+ * @param title
+ * 表格标题名
+ * @param headers
+ * 表格属性列名数组
+ * @param dataset
+ * 需要显示的数据集合,集合中一定要放置符合javabean风格的类的对象。此方法支持的
+ * javabean属性的数据类型有基本数据类型及String,Date,byte[](图片数据)
+ * @param out
+ * 与输出设备关联的流对象,可以将EXCEL文档导出到本地文件或者网络中
+ * @param pattern
+ * 如果有时间数据,设定输出格式。默认为"yyy-MM-dd"
+ */
+ @SuppressWarnings("unchecked")
+ public void exportExcel(String title, String[] headers,
+ Collection dataset, OutputStream out, String pattern) {
+ // 声明一个工作薄
+ HSSFWorkbook workbook = new HSSFWorkbook();
+ // 生成一个表格
+ HSSFSheet sheet = workbook.createSheet(title);
+ // 设置表格默认列宽度为15个字节
+ sheet.setDefaultColumnWidth((short) 15);
+ // 生成一个样式
+ HSSFCellStyle style = workbook.createCellStyle();
+ // 设置这些样式
+ style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
+ style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
+ style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+ style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+ style.setBorderRight(HSSFCellStyle.BORDER_THIN);
+ style.setBorderTop(HSSFCellStyle.BORDER_THIN);
+ style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+ // 生成一个字体
+ HSSFFont font = workbook.createFont();
+ font.setColor(HSSFColor.VIOLET.index);
+ font.setFontHeightInPoints((short) 12);
+ font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
+ // 把字体应用到当前的样式
+ style.setFont(font);
+ // 生成并设置另一个样式
+ HSSFCellStyle style2 = workbook.createCellStyle();
+ style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
+ style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
+ style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+ style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+ style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
+ style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
+ style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+ style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+ // 生成另一个字体
+ HSSFFont font2 = workbook.createFont();
+ font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
+ // 把字体应用到当前的样式
+ style2.setFont(font2);
+ // 声明一个画图的顶级管理器
+ HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
+ // 定义注释的大小和位置,详见文档
+ HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0,
+ 0, 0, 0, (short) 4, 2, (short) 6, 5));
+
+ // 设置注释内容
+ // comment.setString(new HSSFRichTextString("可以在POI中添加注释!"));
+
+ // 设置注释作者,当鼠标移动到单元格上是可以在状态栏中看到该内容.
+ comment.setAuthor("leno");
+ // 产生表格标题行
+ HSSFRow row = sheet.createRow(0);
+ for (short i = 0; i < headers.length; i++) {
+ HSSFCell cell = row.createCell(i);
+ cell.setCellStyle(style);
+ HSSFRichTextString text = new HSSFRichTextString(headers[i]);
+ cell.setCellValue(text);
+ }
+ // 遍历集合数据,产生数据行
+ Iterator it = dataset.iterator();
+ int index = 0;
+ while (it.hasNext()) {
+ index++;
+ row = sheet.createRow(index);
+ T t = (T) it.next();
+ // 利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值
+ Field[] fields = t.getClass().getDeclaredFields();
+ for (short i = 0; i < fields.length; i++) {
+ HSSFCell cell = row.createCell(i);
+ cell.setCellStyle(style2);
+ Field field = fields[i];
+ String fieldName = field.getName();
+ String getMethodName = "get"
+ + fieldName.substring(0, 1).toUpperCase()
+ + fieldName.substring(1);
+ try {
+ Class tCls = t.getClass();
+ Method getMethod = tCls.getMethod(getMethodName,
+ new Class[] {});
+ Object value = getMethod.invoke(t, new Object[] {});
+ // 判断值的类型后进行强制类型转换
+ String textValue = null;
+ // if (value instanceof Integer) {
+ // int intValue = (Integer) value;
+ // cell.setCellValue(intValue);
+ // } else if (value instanceof Float) {
+ // float fValue = (Float) value;
+ // textValue = new HSSFRichTextString(
+ // String.valueOf(fValue));
+ // cell.setCellValue(textValue);
+ // } else if (value instanceof Double) {
+ // double dValue = (Double) value;
+ // textValue = new HSSFRichTextString(
+ // String.valueOf(dValue));
+ // cell.setCellValue(textValue);
+ // } else if (value instanceof Long) {
+ // long longValue = (Long) value;
+ // cell.setCellValue(longValue);
+ // }
+ if (value instanceof Boolean) {
+ boolean bValue = (Boolean) value;
+ textValue = "男";
+ if (!bValue) {
+ textValue = "女";
+ }
+ } else if (value instanceof Date) {
+ Date date = (Date) value;
+ SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+ textValue = sdf.format(date);
+ } else if (value instanceof byte[]) {
+ // 有图片时,设置行高为60px;
+ row.setHeightInPoints(60);
+ // 设置图片所在列宽度为80px,注意这里单位的一个换算
+ sheet.setColumnWidth(i, (short) (35.7 * 80));
+ // sheet.autoSizeColumn(i);
+ byte[] bsValue = (byte[]) value;
+ HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0,
+ 1023, 255, (short) 6, index, (short) 6, index);
+ anchor.setAnchorType(2);
+ patriarch.createPicture(anchor, workbook.addPicture(
+ bsValue, HSSFWorkbook.PICTURE_TYPE_JPEG));
+ } else {
+ // 其它数据类型都当作字符串简单处理
+ textValue = value.toString();
+ }
+ // 如果不是图片数据,就利用正则表达式判断textValue是否全部由数字组成
+ if (textValue != null) {
+ Pattern p = Pattern.compile("^//d+(//.//d+)?$");
+ Matcher matcher = p.matcher(textValue);
+ if (matcher.matches()) {
+ // 是数字当作double处理
+ cell.setCellValue(Double.parseDouble(textValue));
+ } else {
+ HSSFRichTextString richString = new HSSFRichTextString(
+ textValue);
+ HSSFFont font3 = workbook.createFont();
+ font3.setColor(HSSFColor.BLUE.index);
+ richString.applyFont(font3);
+ cell.setCellValue(richString);
+ }
+ }
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } finally {
+ // 清理资源
+ }
+ }
+ }
+ try {
+ workbook.write(out);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
\ No newline at end of file
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/GetFileSize.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/GetFileSize.java"
new file mode 100644
index 0000000..9ee5f00
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/GetFileSize.java"
@@ -0,0 +1,97 @@
+package com.hzu.feirty.utils;
+
+import java.io.File;
+import java.text.DecimalFormat;
+import java.io.FileInputStream;
+public class GetFileSize
+{
+ public long getFileSizes(File f) throws Exception{//取得文件大小
+ long s=0;
+ if (f.exists()) {
+ FileInputStream fis = null;
+ fis = new FileInputStream(f);
+ s= fis.available();
+ } else {
+ f.createNewFile();
+ System.out.println("文件不存在");
+ }
+ return s;
+ }
+ // 递归
+ public long getFileSize(File f)throws Exception//取得文件夹大小
+ {
+ long size = 0;
+ File flist[] = f.listFiles();
+ for (int i = 0; i < flist.length; i++)
+ {
+ if (flist[i].isDirectory())
+ {
+ size = size + getFileSize(flist[i]);
+ } else
+ {
+ size = size + flist[i].length();
+ }
+ }
+ return size;
+ }
+
+ public String FormetFileSize(long fileS) {//转换文件大小
+ DecimalFormat df = new DecimalFormat("#.00");
+ String fileSizeString = "";
+ if (fileS < 1024) {
+ fileSizeString = df.format((double) fileS) + "B";
+ } else if (fileS < 1048576) {
+ fileSizeString = df.format((double) fileS / 1024) + "K";
+ } else if (fileS < 1073741824) {
+ fileSizeString = df.format((double) fileS / 1048576) + "M";
+ } else {
+ fileSizeString = df.format((double) fileS / 1073741824) +"G";
+ }
+ return fileSizeString;
+ }
+
+ public long getlist(File f){//递归求取目录文件个数
+ long size = 0;
+ File flist[] = f.listFiles();
+ size=flist.length;
+ for (int i = 0; i < flist.length; i++) {
+ if (flist[i].isDirectory()) {
+ size = size + getlist(flist[i]);
+ size--;
+ }
+ }
+ return size;
+
+
+ }
+
+ /* public static void main(String args[])
+ {
+ GetFileSize g = new GetFileSize();
+ long startTime = System.currentTimeMillis();
+ try
+ {
+ long l = 0;
+ String path = "C:\\tmp\\学号.txt";
+ File ff = new File(path);
+ if (ff.isDirectory()) { //如果路径是文件夹的时候
+ System.out.println("文件个数 " + g.getlist(ff));
+ System.out.println("目录");
+ l = g.getFileSize(ff);
+ System.out.println(path + "目录的大小为:" + g.FormetFileSize(l));
+ } else {
+ System.out.println(" 文件个数 1");
+ System.out.println("文件");
+ l = g.getFileSizes(ff);
+ System.out.println(path + "文件的大小为:" + g.FormetFileSize(l));
+ }
+
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ long endTime = System.currentTimeMillis();
+ System.out.println("总共花费时间为:" + (endTime - startTime) +"毫秒...");
+ }*/
+}
+
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/IOUtil.java" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/IOUtil.java"
new file mode 100644
index 0000000..ad1b990
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/MailIM/src/com/hzu/feirty/utils/IOUtil.java"
@@ -0,0 +1,161 @@
+
+package com.hzu.feirty.utils;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.sql.SQLException;
+
+import com.hzu.feirty.dao.StudentDaoImpl;
+import com.hzu.feirty.entity.Student;
+
+/**
+
+ */
+public class IOUtil {
+ private static final String PWD="teacher_pwd";
+
+ /**
+
+ */
+ public String stream2file(InputStream source, String targetPath) {
+ File target = new File(targetPath);
+ BufferedInputStream inBuff = null;
+ BufferedOutputStream outBuff = null;
+ try {
+ if (!target.exists()) {
+ String dir = targetPath.substring(0, targetPath.lastIndexOf("/"));
+ new File(dir).mkdirs();
+ try {
+ target.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ inBuff = new BufferedInputStream(source);
+ outBuff = new BufferedOutputStream(new FileOutputStream(target));
+ byte[] b = new byte[1024 * 5];
+ int len;
+ while ((len = inBuff.read(b)) != -1) {
+ outBuff.write(b, 0, len);
+ }
+ outBuff.flush();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (inBuff != null) {
+ inBuff.close();
+ }
+ if (outBuff != null) {
+ outBuff.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (target.length() > 0) {
+ return target.getAbsolutePath();
+ } else {
+ target.delete();
+ return null;
+ }
+ }
+
+ /**
+
+ */
+ public InputStream Byte2InputStream(byte[] data) {
+ ByteArrayInputStream bais = new ByteArrayInputStream(data);
+ return bais;
+ }
+
+ /**
+
+ */
+ public byte[] InputStream2Bytes(InputStream is) {
+ String str = "";
+ byte[] readByte = new byte[1024];
+ try {
+ while (is.read(readByte, 0, 1024) != -1) {
+ str += new String(readByte).trim();
+ }
+ return str.getBytes();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static byte[] getFileBytes(File file) throws IOException {
+ BufferedInputStream bis = null;
+ try {
+ bis = new BufferedInputStream(new FileInputStream(file));
+ int bytes = (int) file.length();
+ byte[] buffer = new byte[bytes];
+ int readBytes = bis.read(buffer);
+ if (readBytes != buffer.length) {
+ throw new IOException("Entire file not read");
+ }
+ return buffer;
+ } finally {
+ if (bis != null) {
+ bis.close();
+ }
+ }
+ }
+ public static void Txt(String path) throws SQLException {
+ try {
+ String str = "";
+ String str1 = "";
+ FileInputStream fis = new FileInputStream(path);// FileInputStream
+ // 从文件系统中的某个文件中获取字节
+ InputStreamReader isr = new InputStreamReader(fis);
+ BufferedReader br = new BufferedReader(isr);
+ while ((str = br.readLine()) != null) {
+ str1 = str;
+ Student student = new Student();
+ student.setNumber(str1);
+ new StudentDaoImpl().Save(student);
+ System.out.println(str+"添加成功");
+ }
+ fis.close();
+ isr.close();
+ br.close();
+
+ } catch (FileNotFoundException e) {
+
+ } catch (IOException e) {
+ }
+ }
+
+ public static void Txt2(String path) {
+ try {
+ String str = "";
+ String str1 = "";
+ FileInputStream fis = new FileInputStream(path);// FileInputStream
+ // 从文件系统中的某个文件中获取字节
+ InputStreamReader isr = new InputStreamReader(fis);
+ BufferedReader br = new BufferedReader(isr);
+ while ((str = br.readLine()) != null) {
+ str1 = str;
+ // PreferencesUtil.setSharedStringData(MailApplication.getmContext(),PWD,str1);
+ }
+ fis.close();
+ isr.close();
+ br.close();
+
+ } catch (FileNotFoundException e) {
+
+ } catch (IOException e) {
+ }
+ }
+}
diff --git "a/src/MailIM/\346\234\215\345\212\241\347\253\257/user.sql" "b/src/MailIM/\346\234\215\345\212\241\347\253\257/user.sql"
new file mode 100644
index 0000000..3836313
--- /dev/null
+++ "b/src/MailIM/\346\234\215\345\212\241\347\253\257/user.sql"
@@ -0,0 +1,189 @@
+/*
+Navicat MySQL Data Transfer
+
+Source Server : localhost_3306
+Source Server Version : 50717
+Source Host : localhost:3306
+Source Database : user
+
+Target Server Type : MYSQL
+Target Server Version : 50717
+File Encoding : 65001
+
+Date: 2017-07-30 00:07:01
+*/
+
+SET FOREIGN_KEY_CHECKS=0;
+
+-- ----------------------------
+-- Table structure for `construction`
+-- ----------------------------
+DROP TABLE IF EXISTS `construction`;
+CREATE TABLE `construction` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `teacher_name` varchar(20) NOT NULL,
+ `number` bigint(11) NOT NULL,
+ `zipname` varchar(30) NOT NULL,
+ `zipsize` varchar(10) NOT NULL,
+ `time` datetime NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of construction
+-- ----------------------------
+INSERT INTO `construction` VALUES ('1', 'abc', '2', '作业附件201707220533.zip', '50.25K', '2017-07-22 00:00:00');
+INSERT INTO `construction` VALUES ('2', 'abc', '2', '作业附件201707220543.zip', '50.25K', '2017-07-22 00:00:00');
+INSERT INTO `construction` VALUES ('3', 'abc', '2', '作业附件201707220548.zip', '50.25K', '2017-07-22 00:00:00');
+INSERT INTO `construction` VALUES ('4', 'abc', '2', '作业附件201707220551.zip', '50.25K', '2017-07-22 00:00:00');
+
+-- ----------------------------
+-- Table structure for `course`
+-- ----------------------------
+DROP TABLE IF EXISTS `course`;
+CREATE TABLE `course` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(20) NOT NULL,
+ `sut_number` int(11) DEFAULT NULL,
+ `school` varchar(20) DEFAULT NULL,
+ `tea_name` varchar(10) DEFAULT NULL,
+ PRIMARY KEY (`id`,`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of course
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `email`
+-- ----------------------------
+DROP TABLE IF EXISTS `email`;
+CREATE TABLE `email` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `messageid` varchar(30) DEFAULT NULL,
+ `from` varchar(30) DEFAULT NULL,
+ `to` varchar(30) DEFAULT NULL,
+ `subject` varchar(50) DEFAULT NULL,
+ `sentdata` varchar(50) DEFAULT NULL,
+ `content` varchar(50) DEFAULT NULL,
+ `attachment_name` varchar(50) DEFAULT NULL,
+ `attachments_size` varchar(10) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of email
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `homework`
+-- ----------------------------
+DROP TABLE IF EXISTS `homework`;
+CREATE TABLE `homework` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `stu_id` varchar(20) NOT NULL,
+ `file_name` varchar(30) DEFAULT NULL,
+ `file_size` varchar(10) DEFAULT NULL,
+ `file_time` varchar(30) DEFAULT NULL,
+ PRIMARY KEY (`id`,`stu_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of homework
+-- ----------------------------
+INSERT INTO `homework` VALUES ('1', 'abc', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('2', 'abc', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('3', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('4', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('5', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('6', '1414080903229', '收发作业用例规约.docx', '26.37K', '17-07-20 03:25');
+INSERT INTO `homework` VALUES ('7', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('8', '1414080903229', '收发作业用例规约.docx', '26.37K', '17-07-20 03:25');
+INSERT INTO `homework` VALUES ('9', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('10', '1414080903229', '收发作业用例规约.docx', '26.37K', '17-07-20 03:25');
+INSERT INTO `homework` VALUES ('11', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('12', '1414080903229', '收发作业用例规约.docx', '26.37K', '17-07-20 03:25');
+INSERT INTO `homework` VALUES ('13', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('14', '1414080903229', '收发作业用例规约.docx', '26.37K', '17-07-20 03:25');
+INSERT INTO `homework` VALUES ('15', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('16', '1414080903229', '收发作业用例规约.docx', '26.37K', '17-07-20 03:25');
+INSERT INTO `homework` VALUES ('17', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('18', '1414080903229', '收发作业用例规约.docx', '26.37K', '17-07-20 03:25');
+INSERT INTO `homework` VALUES ('19', '1414080903229', '收发作业用例规约(老师修改).docx', '31.73K', '17-07-12 16:41');
+INSERT INTO `homework` VALUES ('20', '1414080903229', '收发作业用例规约.docx', '26.37K', '17-07-20 03:25');
+
+-- ----------------------------
+-- Table structure for `mailbyuser`
+-- ----------------------------
+DROP TABLE IF EXISTS `mailbyuser`;
+CREATE TABLE `mailbyuser` (
+ `uid` int(11) NOT NULL AUTO_INCREMENT,
+ `user_teacher` varchar(20) NOT NULL,
+ `mail_name` varchar(50) NOT NULL,
+ `mail_pwd` varchar(50) NOT NULL,
+ `nickname` varchar(10) NOT NULL,
+ `peasonmail` varchar(50) NOT NULL,
+ `school` varchar(50) NOT NULL,
+ PRIMARY KEY (`uid`,`user_teacher`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of mailbyuser
+-- ----------------------------
+INSERT INTO `mailbyuser` VALUES ('1', 'abc', '1050416617@qq.com', 'jwovgwaypwrebecd', 'abc', '1050416617@qq.com', '惠州学院');
+
+-- ----------------------------
+-- Table structure for `school`
+-- ----------------------------
+DROP TABLE IF EXISTS `school`;
+CREATE TABLE `school` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(20) NOT NULL,
+ PRIMARY KEY (`id`,`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of school
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `student`
+-- ----------------------------
+DROP TABLE IF EXISTS `student`;
+CREATE TABLE `student` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `name` varchar(20) DEFAULT NULL,
+ `number` varchar(20) NOT NULL,
+ `worksnumber` int(11) DEFAULT NULL,
+ `mail` varchar(50) DEFAULT NULL,
+ `course` varchar(10) DEFAULT NULL,
+ `teacher` varchar(10) DEFAULT NULL,
+ `school` varchar(10) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of student
+-- ----------------------------
+INSERT INTO `student` VALUES ('1', '123', '1414080903229', null, '1050416617@qq.com', null, 'abc', '惠州学院');
+INSERT INTO `student` VALUES ('2', null, '1414080903299', null, null, null, null, null);
+INSERT INTO `student` VALUES ('3', null, '1414080903888', null, null, null, null, null);
+
+-- ----------------------------
+-- Table structure for `user`
+-- ----------------------------
+DROP TABLE IF EXISTS `user`;
+CREATE TABLE `user` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `username` varchar(20) NOT NULL,
+ `password` varchar(12) NOT NULL,
+ `type` varchar(10) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of user
+-- ----------------------------
+INSERT INTO `user` VALUES ('1', 'abc', '123', 'teacher');
+INSERT INTO `user` VALUES ('2', 'mxj', '123', 'student');
+INSERT INTO `user` VALUES ('9', '123', '123', 'student');