我试图在每个用户点击按钮时向每个用户发送一封电子邮件,这是我的类,我试图通过SendEmailAsyncTask类发送邮件,但是当我点击按钮时它会抛出AuthencationFailedException。 在这一行,
Mail m = new Mail("mailid@domain.com", "password");
我正在传递自己的ID和密码。 我已经下载了3个jar文件并添加到项目的构建路径中。
1)activation.jar
2)additionnal.jar
3)mail.jar
将以下使用权限授予您的Android清单文件
<uses-permission android:name="android.permission.INTERNET"/>`
请检查并告诉我为什么会出现此错误。
package com.example.gmailemail;
import java.util.Properties;
import javax.mail.AuthenticationFailedException;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button login = (Button) findViewById(R.id.mBtnSubmit);
login.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0)
{
new SendEmailAsyncTask().execute();
} });
}
class SendEmailAsyncTask extends AsyncTask <Void, Void, Boolean> {
Mail m = new Mail("mailid@domain.com", "password");
public SendEmailAsyncTask() {
if (BuildConfig.DEBUG) Log.v(SendEmailAsyncTask.class.getName(), "SendEmailAsyncTask()");
String[] toArr = { "vaishali.sharma0127@gmail.com"};
m.setTo(toArr);
m.setFrom("vaishali@avigma.com");
m.setSubject("Email from Android");
m.setBody("body.");
}
@Override
protected Boolean doInBackground(Void... params) {
if (BuildConfig.DEBUG) Log.v(SendEmailAsyncTask.class.getName(), "doInBackground()");
try {
m.send();
return true;
} catch (AuthenticationFailedException e) {
Log.e(SendEmailAsyncTask.class.getName(), "Bad account details");
e.printStackTrace();
return false;
} catch (MessagingException e) {
Log.e(SendEmailAsyncTask.class.getName(), m.getTo(null) + "failed");
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}}
我也在布局中做了所有必要的更改。任何帮助将受到高度赞赏。 :)