2

I am developing an app in which i want to send mail from app without user intervention(without using intents).And it is not good to take the user credentials(without using java mail API).But how to bind the body of the mail from android application to Web API.Here is my code.

 public void onClick(View v) {
 if (v == btnSend) {
 String url = "http://app.xyz.com/api/SendMail/SendMail?Emailid=xyz@gmail.com" + "&Subject=" + "&Body=";
       if (url != null) {
            email = editTextEmail.getText().toString();
            subject = editTextSubject.getText().toString();
            message = editTextMessage.getText().toString();
            final Intent emailIntent = new Intent( android.content.Intent.ACTION_SEND);
            emailIntent.setType("plain/text");
            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
            new String[]{"xyz@gmail.com"});
            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,subject);
            emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
            this.startActivity(Intent.createChooser(emailIntent, "Sending email..."));

           }
           }catch (Throwable t) {
            Toast.makeText(this,
           "Request failed try again: " + t.toString(),
            Toast.LENGTH_LONG).show();
       }
    }
Arafat Nalkhande
  • 11,078
  • 9
  • 39
  • 63
Anusha Dandu
  • 41
  • 1
  • 8

1 Answers1

0

Finally I got solution.In order send mail using Amazon SES.

We should have Amazon credentials.Use that Credentials and write a controller in .net using web API and call the URL in our android application.

Below is my android code.

public void onCreate(Bundle savedInstanceState)
   {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.feed_back);
    scanBtn = (Button) findViewById(R.id.button1);
    myAwesomeTextview = (TextView) findViewById(R.id.myAwesomeTextview);
    scanBtn.setOnClickListener(new View.OnClickListener()
    {
    public void onClick(View view)
    {
    mEdit = (EditText) findViewById(R.id.editText1);
    mText = (TextView) findViewById(R.id.textView2);
    Subject = mEdit.getText().toString();
    mEdit1 = (EditText) findViewById(R.id.editText2);
    mText1 = (TextView) findViewById(R.id.textView3);
    Body = mEdit1.getText().toString();
    Log.d("###$Request URL", Subject + "");
    Log.d("###$Request URL", Body + "");
    SharedPreferences sharedpreferences = getSharedPreferences(main.MyPREFERENCES, Context.MODE_PRIVATE);
    String  e = sharedpreferences.getString(main.email,"");
    String url ="http://app.xyz.com/Api/SendMail/SendMail?Emailid="+ e + "&Subject="+ Subject+"&Body=" +Body;
    AQuery mAQuery = new AQuery(FeedBack.this);
    mAQuery.ajax(url, String.class, new AjaxCallback<String>()
    {
    @Override
    public void callback(String url, String data, AjaxStatus status)
    {
    super.callback(url, data, status);
    if (BuildConfig.DEBUG)
    {
        Log.d("###$Request URL", url + "");
        Log.d("###$Response ", data + "");
        Log.d("###$Status Message : ", status.getMessage() + "");
        Log.d("###$Status Code : ", status.getCode() + "");

    }
    if(status.getCode()!=-101)
    {
       String StringData = "" + data;
       try 
       {
         JSONObject json = new JSONObject(StringData);
         String sd,hd;
         sd = json.getString("Subject");
         hd=  json.getString("Body");

       } 
       catch (Exception a) 
       {
          Toast toast = Toast.makeText(FeedBack.this,"Mail Sending", Toast.LENGTH_LONG);
          toast.setGravity(Gravity.CENTER, 0, 0);
          toast.show();
       }
       }
       else
       {
         Toast toast = Toast.makeText(FeedBack.this,"Please Check Your Internet Connection", Toast.LENGTH_LONG);
         toast.setGravity(Gravity.CENTER, 0, 0);
         toast.show();

       }
        }
        });
        }
     });
   }
}
Vishal Thakkar
  • 2,117
  • 2
  • 16
  • 33
Anusha Dandu
  • 41
  • 1
  • 8