我正在开发一个应用程序,我希望在没有用户干预的情况下从应用程序发送邮件(不使用意图)。并且不利用用户凭据(不使用java邮件API)。但是如何绑定正文从Android应用程序到Web API的邮件。这是我的代码。
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();
}
}
答案 0 :(得分:0)
最后我得到了解决方案。使用 Amazon SES 发送邮件。
我们应该拥有亚马逊凭证。使用凭据并使用Web API在.net中编写控制器并在我们的Android应用程序中调用URL。
以下是我的Android代码。
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();
}
}
});
}
});
}
}