使用gmail SMTP发送AuthenticationFailedException发送电子邮件

时间:2013-08-02 10:41:27

标签: android

我试图在每个用户点击按钮时向每个用户发送一封电子邮件,这是我的类,我试图通过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;
            }
        }
    }}

我也在布局中做了所有必要的更改。任何帮助将受到高度赞赏。 :)

0 个答案:

没有答案