mirror of
https://github.com/pppscn/SmsForwarder
synced 2025-08-03 09:27:41 +08:00
优化:Email发送通道简化配置(常见邮箱不需要填写smtp信息)
This commit is contained in:
parent
64d930bfbc
commit
f8718a348a
@ -22,12 +22,17 @@ import android.net.Uri;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
import android.text.Spanned;
|
||||||
|
import android.text.SpannedString;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.text.style.AbsoluteSizeSpan;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.AdapterView;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.GridView;
|
import android.widget.GridView;
|
||||||
@ -36,6 +41,7 @@ import android.widget.LinearLayout;
|
|||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
import android.widget.SimpleAdapter;
|
import android.widget.SimpleAdapter;
|
||||||
|
import android.widget.Spinner;
|
||||||
import android.widget.Switch;
|
import android.widget.Switch;
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
@ -94,9 +100,6 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
public static final int NOTIFY = 0x9731993;
|
public static final int NOTIFY = 0x9731993;
|
||||||
private final String TAG = "SenderActivity";
|
private final String TAG = "SenderActivity";
|
||||||
// 用于存储数据
|
|
||||||
private List<SenderModel> senderModels = new ArrayList<>();
|
|
||||||
private SenderAdapter adapter;
|
|
||||||
//消息处理者,创建一个Handler的子类对象,目的是重写Handler的处理消息的方法(handleMessage())
|
//消息处理者,创建一个Handler的子类对象,目的是重写Handler的处理消息的方法(handleMessage())
|
||||||
@SuppressLint("HandlerLeak")
|
@SuppressLint("HandlerLeak")
|
||||||
private final Handler handler = new Handler() {
|
private final Handler handler = new Handler() {
|
||||||
@ -107,6 +110,9 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// 用于存储数据
|
||||||
|
private List<SenderModel> senderModels = new ArrayList<>();
|
||||||
|
private SenderAdapter adapter;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -514,6 +520,8 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
//邮箱
|
//邮箱
|
||||||
@SuppressLint("SimpleDateFormat")
|
@SuppressLint("SimpleDateFormat")
|
||||||
private void setEmail(final SenderModel senderModel, final boolean isClone) {
|
private void setEmail(final SenderModel senderModel, final boolean isClone) {
|
||||||
|
final String[] MAIL_TYPE = getResources().getStringArray(R.array.MailType);
|
||||||
|
|
||||||
EmailSettingVo emailSettingVo = null;
|
EmailSettingVo emailSettingVo = null;
|
||||||
//try phrase json setting
|
//try phrase json setting
|
||||||
if (senderModel != null) {
|
if (senderModel != null) {
|
||||||
@ -541,9 +549,20 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
final ClearEditText editTextEmailPsw = view1.findViewById(R.id.editTextEmailPsw);
|
final ClearEditText editTextEmailPsw = view1.findViewById(R.id.editTextEmailPsw);
|
||||||
final EditText editTextEmailToAdd = view1.findViewById(R.id.editTextEmailToAdd);
|
final EditText editTextEmailToAdd = view1.findViewById(R.id.editTextEmailToAdd);
|
||||||
final EditText editTextEmailTitle = view1.findViewById(R.id.editTextEmailTitle);
|
final EditText editTextEmailTitle = view1.findViewById(R.id.editTextEmailTitle);
|
||||||
final RadioGroup radioGroupEmailProtocol = view1.findViewById(R.id.radioGroupEmailProtocol);
|
final Spinner spinnerEmailType = view1.findViewById(R.id.spinnerEmailType);
|
||||||
|
final LinearLayout layoutServiceSetting = view1.findViewById(R.id.layoutServiceSetting);
|
||||||
if (emailSettingVo != null) {
|
if (emailSettingVo != null) {
|
||||||
radioGroupEmailProtocol.check(emailSettingVo.getEmailProtocolCheckId());
|
String mailType = emailSettingVo.getMailType();
|
||||||
|
if (!TextUtils.isEmpty(mailType)) {
|
||||||
|
for (int i = 0; i < MAIL_TYPE.length; i++) {
|
||||||
|
if (mailType.equals(MAIL_TYPE[i])) {
|
||||||
|
spinnerEmailType.setSelection(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
spinnerEmailType.setSelection(MAIL_TYPE.length - 1);
|
||||||
|
}
|
||||||
editTextEmailHost.setText(emailSettingVo.getHost());
|
editTextEmailHost.setText(emailSettingVo.getHost());
|
||||||
editTextEmailPort.setText(emailSettingVo.getPort());
|
editTextEmailPort.setText(emailSettingVo.getPort());
|
||||||
switchEmailSSl.setChecked(emailSettingVo.getSsl());
|
switchEmailSSl.setChecked(emailSettingVo.getSsl());
|
||||||
@ -564,6 +583,34 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
.create();
|
.create();
|
||||||
final AlertDialog show = alertDialog71.show();
|
final AlertDialog show = alertDialog71.show();
|
||||||
|
|
||||||
|
spinnerEmailType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
String mailType = parent.getItemAtPosition(position).toString();
|
||||||
|
//ToastUtils.show("选择的邮箱类型是:" + mailType);
|
||||||
|
|
||||||
|
String hint;
|
||||||
|
if (mailType.equals(getString(R.string.other_mail_type))) {
|
||||||
|
hint = getString(R.string.hint_from_add_full);
|
||||||
|
layoutServiceSetting.setVisibility(View.VISIBLE);
|
||||||
|
ToastUtils.delayedShow(R.string.tips_other_mail_type, 3000);
|
||||||
|
} else {
|
||||||
|
hint = getString(R.string.hint_from_add);
|
||||||
|
layoutServiceSetting.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
SpannableString ss = new SpannableString(hint);//定义hint的值
|
||||||
|
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(13, true);//设置字体大小 true表示单位是sp
|
||||||
|
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||||
|
editTextEmailFromAdd.setHint(new SpannedString(ss));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
buttonOk.setOnClickListener(view -> {
|
buttonOk.setOnClickListener(view -> {
|
||||||
String senderName = editTextEmailName.getText().toString().trim();
|
String senderName = editTextEmailName.getText().toString().trim();
|
||||||
int senderStatus = switchEmailEnable.isChecked() ? STATUS_ON : STATUS_OFF;
|
int senderStatus = switchEmailEnable.isChecked() ? STATUS_ON : STATUS_OFF;
|
||||||
@ -572,7 +619,7 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String protocol = radioGroupEmailProtocol.getCheckedRadioButtonId() == R.id.radioEmailProtocolSmtp ? "SMTP" : "IMAP";
|
String mailType = spinnerEmailType.getSelectedItem().toString();
|
||||||
String host = editTextEmailHost.getText().toString().trim();
|
String host = editTextEmailHost.getText().toString().trim();
|
||||||
String port = editTextEmailPort.getText().toString().trim();
|
String port = editTextEmailPort.getText().toString().trim();
|
||||||
boolean ssl = switchEmailSSl.isChecked();
|
boolean ssl = switchEmailSSl.isChecked();
|
||||||
@ -585,12 +632,17 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
String nickname = editTextEmailNickname.getText().toString().trim();
|
String nickname = editTextEmailNickname.getText().toString().trim();
|
||||||
if (nickname.isEmpty()) nickname = "SmsForwarder";
|
if (nickname.isEmpty()) nickname = "SmsForwarder";
|
||||||
if (host.isEmpty() || port.isEmpty() || fromEmail.isEmpty() || pwd.isEmpty() || toEmail.isEmpty()) {
|
if (fromEmail.isEmpty() || pwd.isEmpty() || toEmail.isEmpty()) {
|
||||||
ToastUtils.delayedShow(R.string.invalid_email, 3000);
|
ToastUtils.delayedShow(R.string.invalid_email, 3000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
EmailSettingVo emailSettingVoNew = new EmailSettingVo(protocol, host, port, ssl, fromEmail, nickname, pwd, toEmail, title);
|
if (mailType.equals(getString(R.string.other_mail_type)) && (host.isEmpty() || port.isEmpty())) {
|
||||||
|
ToastUtils.delayedShow(R.string.tips_other_mail_type, 3000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EmailSettingVo emailSettingVoNew = new EmailSettingVo(mailType, host, port, ssl, fromEmail, nickname, pwd, toEmail, title);
|
||||||
if (isClone || senderModel == null) {
|
if (isClone || senderModel == null) {
|
||||||
SenderModel newSenderModel = new SenderModel();
|
SenderModel newSenderModel = new SenderModel();
|
||||||
newSenderModel.setName(senderName);
|
newSenderModel.setName(senderName);
|
||||||
@ -622,7 +674,7 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
});
|
});
|
||||||
|
|
||||||
buttonTest.setOnClickListener(view -> {
|
buttonTest.setOnClickListener(view -> {
|
||||||
String protocol = radioGroupEmailProtocol.getCheckedRadioButtonId() == R.id.radioEmailProtocolSmtp ? "SMTP" : "IMAP";
|
String mailType = spinnerEmailType.getSelectedItem().toString();
|
||||||
String host = editTextEmailHost.getText().toString().trim();
|
String host = editTextEmailHost.getText().toString().trim();
|
||||||
String port = editTextEmailPort.getText().toString().trim();
|
String port = editTextEmailPort.getText().toString().trim();
|
||||||
boolean ssl = switchEmailSSl.isChecked();
|
boolean ssl = switchEmailSSl.isChecked();
|
||||||
@ -636,14 +688,20 @@ public class SenderActivity extends AppCompatActivity {
|
|||||||
String nickname = editTextEmailNickname.getText().toString().trim();
|
String nickname = editTextEmailNickname.getText().toString().trim();
|
||||||
if (nickname.isEmpty()) nickname = "SmsForwarder";
|
if (nickname.isEmpty()) nickname = "SmsForwarder";
|
||||||
|
|
||||||
if (host.isEmpty() || port.isEmpty() || fromEmail.isEmpty() || pwd.isEmpty() || toEmail.isEmpty()) {
|
if (fromEmail.isEmpty() || pwd.isEmpty() || toEmail.isEmpty()) {
|
||||||
ToastUtils.delayedShow(R.string.invalid_email, 3000);
|
ToastUtils.delayedShow(R.string.invalid_email, 3000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mailType.equals(getString(R.string.other_mail_type)) && (host.isEmpty() || port.isEmpty())) {
|
||||||
|
ToastUtils.delayedShow(R.string.tips_other_mail_type, 3000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
EmailSettingVo emailSettingVoNew = new EmailSettingVo(mailType, host, port, ssl, fromEmail, nickname, pwd, toEmail, title);
|
||||||
SmsVo smsVo = new SmsVo(getString(R.string.test_phone_num), getString(R.string.test_sender_sms), new Date(), getString(R.string.test_sim_info));
|
SmsVo smsVo = new SmsVo(getString(R.string.test_phone_num), getString(R.string.test_sender_sms), new Date(), getString(R.string.test_sim_info));
|
||||||
SenderMailMsg.sendEmail(0, handler, protocol, host, port, ssl, fromEmail, nickname, pwd, toEmail, smsVo.getTitleForSend(title), smsVo.getSmsVoForSend());
|
SenderMailMsg.sendEmail(0, handler, emailSettingVoNew, smsVo.getTitleForSend(title), smsVo.getSmsVoForSend());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
ToastUtils.delayedShow(getString(R.string.failed_to_fwd) + e.getMessage(), 3000);
|
ToastUtils.delayedShow(getString(R.string.failed_to_fwd) + e.getMessage(), 3000);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package com.idormy.sms.forwarder.model.vo;
|
package com.idormy.sms.forwarder.model.vo;
|
||||||
|
|
||||||
import com.idormy.sms.forwarder.R;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class EmailSettingVo implements Serializable {
|
public class EmailSettingVo implements Serializable {
|
||||||
|
private String mailType;
|
||||||
private String host;
|
private String host;
|
||||||
private String port;
|
private String port;
|
||||||
private Boolean ssl;
|
private Boolean ssl;
|
||||||
@ -16,13 +15,12 @@ public class EmailSettingVo implements Serializable {
|
|||||||
private String pwd;
|
private String pwd;
|
||||||
private String toEmail;
|
private String toEmail;
|
||||||
private String title;
|
private String title;
|
||||||
private String protocol;
|
|
||||||
|
|
||||||
public EmailSettingVo() {
|
public EmailSettingVo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public EmailSettingVo(String protocol, String host, String port, Boolean ssl, String fromEmail, String nickname, String pwd, String toEmail, String title) {
|
public EmailSettingVo(String mailType, String host, String port, Boolean ssl, String fromEmail, String nickname, String pwd, String toEmail, String title) {
|
||||||
this.protocol = protocol;
|
this.mailType = mailType;
|
||||||
this.host = host;
|
this.host = host;
|
||||||
this.port = port;
|
this.port = port;
|
||||||
this.ssl = ssl;
|
this.ssl = ssl;
|
||||||
@ -33,11 +31,4 @@ public class EmailSettingVo implements Serializable {
|
|||||||
this.title = title;
|
this.title = title;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getEmailProtocolCheckId() {
|
|
||||||
if (protocol == null || protocol.equals("SMTP")) {
|
|
||||||
return R.id.radioEmailProtocolSmtp;
|
|
||||||
} else {
|
|
||||||
return R.id.radioEmailProtocolImap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -210,8 +210,7 @@ public class SendUtil {
|
|||||||
EmailSettingVo emailSettingVo = JSON.parseObject(senderModel.getJsonSetting(), EmailSettingVo.class);
|
EmailSettingVo emailSettingVo = JSON.parseObject(senderModel.getJsonSetting(), EmailSettingVo.class);
|
||||||
if (emailSettingVo != null) {
|
if (emailSettingVo != null) {
|
||||||
try {
|
try {
|
||||||
SenderMailMsg.sendEmail(logId, handError, emailSettingVo.getProtocol(), emailSettingVo.getHost(), emailSettingVo.getPort(), emailSettingVo.getSsl(), emailSettingVo.getFromEmail(), emailSettingVo.getNickname(),
|
SenderMailMsg.sendEmail(logId, handError, emailSettingVo, smsVo.getTitleForSend(emailSettingVo.getTitle(), regexReplace), smsVo.getSmsVoForSend(smsTemplate, regexReplace));
|
||||||
emailSettingVo.getPwd(), emailSettingVo.getToEmail(), smsVo.getTitleForSend(emailSettingVo.getTitle(), regexReplace), smsVo.getSmsVoForSend(smsTemplate, regexReplace));
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtil.updateLog(logId, 0, e.getMessage());
|
LogUtil.updateLog(logId, 0, e.getMessage());
|
||||||
Log.e(TAG, "senderSendMsg: SenderMailMsg error " + e.getMessage());
|
Log.e(TAG, "senderSendMsg: SenderMailMsg error " + e.getMessage());
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
package com.idormy.sms.forwarder.sender;
|
package com.idormy.sms.forwarder.sender;
|
||||||
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.idormy.sms.forwarder.MyApplication;
|
||||||
|
import com.idormy.sms.forwarder.R;
|
||||||
|
import com.idormy.sms.forwarder.model.vo.EmailSettingVo;
|
||||||
import com.idormy.sms.forwarder.utils.LogUtil;
|
import com.idormy.sms.forwarder.utils.LogUtil;
|
||||||
import com.smailnet.emailkit.Draft;
|
import com.smailnet.emailkit.Draft;
|
||||||
import com.smailnet.emailkit.EmailKit;
|
import com.smailnet.emailkit.EmailKit;
|
||||||
@ -15,26 +19,33 @@ import java.util.Set;
|
|||||||
public class SenderMailMsg extends SenderBaseMsg {
|
public class SenderMailMsg extends SenderBaseMsg {
|
||||||
private static final String TAG = "SenderMailMsg";
|
private static final String TAG = "SenderMailMsg";
|
||||||
|
|
||||||
public static void sendEmail(final long logId, final Handler handError, final String protocol, final String host, final String port, final boolean ssl, final String fromEmail, final String nickname, final String pwd, final String toAdd, final String title, final String content) {
|
public static void sendEmail(final long logId, final Handler handError, final EmailSettingVo emailSettingVo, final String title, final String content) {
|
||||||
|
|
||||||
Log.d(TAG, "sendEmail: protocol:" + protocol + " host:" + host + " port:" + port + " ssl:" + ssl + " fromEmail:" + fromEmail + " nickname:" + nickname + " pwd:" + pwd + " toAdd:" + toAdd);
|
Log.d(TAG, "emailSettingVo: " + emailSettingVo.toString());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//初始化框架
|
//初始化框架
|
||||||
//EmailKit.initialize(MyApplication.getContext());
|
//EmailKit.initialize(MyApplication.getContext());
|
||||||
|
|
||||||
//配置发件人邮件服务器参数
|
//配置发件人邮件服务器参数
|
||||||
EmailKit.Config config = new EmailKit.Config()
|
String fromEmail = emailSettingVo.getFromEmail();
|
||||||
.setSMTP(host, Integer.parseInt(port), ssl) //设置SMTP服务器主机地址、端口和是否开启ssl
|
EmailKit.Config config = new EmailKit.Config();
|
||||||
.setAccount(fromEmail) //发件人邮箱
|
if (TextUtils.isEmpty(emailSettingVo.getMailType()) || emailSettingVo.getMailType().equals(MyApplication.getContext().getString(R.string.other_mail_type))) {
|
||||||
.setPassword(pwd); //密码或授权码
|
config.setSMTP(emailSettingVo.getHost(), Integer.parseInt(emailSettingVo.getPort()), emailSettingVo.getSsl()); //设置SMTP服务器主机地址、端口和是否开启ssl
|
||||||
|
} else {
|
||||||
|
fromEmail += emailSettingVo.getMailType();
|
||||||
|
config.setMailType(emailSettingVo.getMailType());//选择邮箱类型
|
||||||
|
}
|
||||||
|
|
||||||
|
config.setAccount(fromEmail) //发件人邮箱
|
||||||
|
.setPassword(emailSettingVo.getPwd()); //密码或授权码
|
||||||
|
|
||||||
//多个收件人邮箱
|
//多个收件人邮箱
|
||||||
Set<String> toSet = new HashSet<>(Arrays.asList(toAdd.replace(",", ",").split(",")));
|
Set<String> toSet = new HashSet<>(Arrays.asList(emailSettingVo.getToEmail().replace(",", ",").split(",")));
|
||||||
|
|
||||||
//设置一封草稿邮件
|
//设置一封草稿邮件
|
||||||
Draft draft = new Draft()
|
Draft draft = new Draft()
|
||||||
.setNickname(nickname) //发件人昵称
|
.setNickname(emailSettingVo.getNickname()) //发件人昵称
|
||||||
.setTo(toSet) //收件人邮箱
|
.setTo(toSet) //收件人邮箱
|
||||||
.setSubject(title) //邮件主题
|
.setSubject(title) //邮件主题
|
||||||
.setText(content); //邮件正文
|
.setText(content); //邮件正文
|
||||||
|
@ -20,7 +20,8 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/set_name" />
|
android:text="@string/set_name"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/editTextEmailName"
|
android:id="@+id/editTextEmailName"
|
||||||
@ -49,6 +50,7 @@
|
|||||||
android:text="@string/account"
|
android:text="@string/account"
|
||||||
android:textColor="@color/colorBlueGreyDark"
|
android:textColor="@color/colorBlueGreyDark"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
tools:ignore="HardcodedText" />
|
tools:ignore="HardcodedText" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -61,19 +63,30 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/email_account" />
|
android:text="@string/email_account"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/editTextEmailFromAdd"
|
android:id="@+id/editTextEmailFromAdd"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="3dp"
|
android:layout_marginStart="3dp"
|
||||||
|
android:layout_weight="1"
|
||||||
android:autofillHints=""
|
android:autofillHints=""
|
||||||
android:ems="14"
|
android:hint="@string/hint_from_add"
|
||||||
android:inputType="textEmailAddress"
|
android:inputType="textEmailAddress"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:text=""
|
android:text=""
|
||||||
tools:ignore="LabelFor" />
|
tools:ignore="LabelFor" />
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/spinnerEmailType"
|
||||||
|
android:layout_width="100dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="0dp"
|
||||||
|
android:entries="@array/MailType"
|
||||||
|
android:padding="0dp"
|
||||||
|
android:theme="@style/dialog_spinner_style" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -86,14 +99,18 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/email_password" />
|
android:text="@string/email_password"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<com.idormy.sms.forwarder.view.ClearEditText
|
<com.idormy.sms.forwarder.view.ClearEditText
|
||||||
android:id="@+id/editTextEmailPsw"
|
android:id="@+id/editTextEmailPsw"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="5dp"
|
android:layout_marginStart="3dp"
|
||||||
app:showEye="true" />
|
app:hint="填写登录密码 或 授权码"
|
||||||
|
app:showEye="true"
|
||||||
|
app:textColorHint="#9E9E9E"
|
||||||
|
app:textSize="13sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -106,7 +123,8 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/email_nickname" />
|
android:text="@string/email_nickname"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/editTextEmailNickname"
|
android:id="@+id/editTextEmailNickname"
|
||||||
@ -121,116 +139,89 @@
|
|||||||
tools:ignore="LabelFor,TextFields" />
|
tools:ignore="LabelFor,TextFields" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="10dp"
|
|
||||||
android:layout_marginTop="10dp"
|
|
||||||
android:text="@string/servers"
|
|
||||||
android:textColor="@color/colorBlueGreyDark"
|
|
||||||
android:textSize="14sp"
|
|
||||||
tools:ignore="HardcodedText" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/layoutServiceSetting"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="10dp"
|
android:orientation="vertical"
|
||||||
android:layout_marginTop="5dp"
|
|
||||||
android:layout_marginEnd="10dp"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:visibility="gone">
|
android:visibility="gone">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="5dp"
|
android:layout_marginStart="10dp"
|
||||||
android:text="@string/email_protocol" />
|
android:layout_marginTop="10dp"
|
||||||
|
android:text="@string/servers"
|
||||||
|
android:textColor="@color/colorBlueGreyDark"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:ignore="HardcodedText" />
|
||||||
|
|
||||||
<RadioGroup
|
<LinearLayout
|
||||||
android:id="@+id/radioGroupEmailProtocol"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_marginStart="10dp"
|
||||||
android:layout_marginStart="3dp"
|
android:layout_marginEnd="10dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<RadioButton
|
<TextView
|
||||||
android:id="@+id/radioEmailProtocolSmtp"
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/email_host"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/editTextEmailHost"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="3dp"
|
||||||
|
android:autofillHints=""
|
||||||
|
android:ems="14"
|
||||||
|
android:inputType="text"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:text=""
|
||||||
|
tools:ignore="LabelFor,TextFields" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/smtp_port"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/editTextEmailPort"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="3dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:digits="0123456789"
|
||||||
|
android:importantForAutofill="no"
|
||||||
|
android:inputType="number"
|
||||||
|
android:maxLength="5"
|
||||||
|
android:singleLine="true"
|
||||||
|
tools:ignore="LabelFor,TextFields" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/enable_ssl"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<Switch
|
||||||
|
android:id="@+id/switchEmailSSl"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:checked="true"
|
android:checked="true"
|
||||||
android:text="@string/email_smtp" />
|
tools:ignore="UseSwitchCompatOrMaterialXml" />
|
||||||
|
</LinearLayout>
|
||||||
<RadioButton
|
|
||||||
android:id="@+id/radioEmailProtocolImap"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/email_imap" />
|
|
||||||
|
|
||||||
</RadioGroup>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_marginStart="10dp"
|
|
||||||
android:layout_marginEnd="10dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/email_host" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/editTextEmailHost"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="3dp"
|
|
||||||
android:autofillHints=""
|
|
||||||
android:ems="14"
|
|
||||||
android:inputType="text"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:text=""
|
|
||||||
tools:ignore="LabelFor,TextFields" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_marginStart="10dp"
|
|
||||||
android:layout_marginEnd="10dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/smtp_port" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/editTextEmailPort"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="3dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:digits="0123456789"
|
|
||||||
android:importantForAutofill="no"
|
|
||||||
android:inputType="number"
|
|
||||||
android:maxLength="5"
|
|
||||||
android:singleLine="true"
|
|
||||||
tools:ignore="LabelFor,TextFields" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/enable_ssl" />
|
|
||||||
|
|
||||||
<Switch
|
|
||||||
android:id="@+id/switchEmailSSl"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:checked="true"
|
|
||||||
tools:ignore="UseSwitchCompatOrMaterialXml" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -241,6 +232,7 @@
|
|||||||
android:text="@string/email_settings"
|
android:text="@string/email_settings"
|
||||||
android:textColor="@color/colorBlueGreyDark"
|
android:textColor="@color/colorBlueGreyDark"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
tools:ignore="HardcodedText" />
|
tools:ignore="HardcodedText" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -260,7 +252,8 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/email_to" />
|
android:text="@string/email_to"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@ -300,7 +293,8 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/email_title" />
|
android:text="@string/email_title"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
15
app/src/main/res/values-en/arrays.xml
Normal file
15
app/src/main/res/values-en/arrays.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string-array name="MailType">
|
||||||
|
<item>\@qq.com</item>
|
||||||
|
<item>\@foxmail.com</item>
|
||||||
|
<item>\@exmail.qq.com</item>
|
||||||
|
<item>\@outlook.com</item>
|
||||||
|
<item>\@office365.com</item>
|
||||||
|
<item>\@gmail.com</item>
|
||||||
|
<item>\@yeah.net</item>
|
||||||
|
<item>\@163.com</item>
|
||||||
|
<item>\@126.com</item>
|
||||||
|
<item>Other</item><!--注意这里不能修改-->
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
@ -135,9 +135,6 @@
|
|||||||
<string name="dingding_secret">Secret (optional)</string>
|
<string name="dingding_secret">Secret (optional)</string>
|
||||||
<string name="dingding_at">At Mobiles</string>
|
<string name="dingding_at">At Mobiles</string>
|
||||||
<string name="dingding_at_tips">e.g. 18888888888,19999999999</string>
|
<string name="dingding_at_tips">e.g. 18888888888,19999999999</string>
|
||||||
<string name="email_protocol">Protocol</string>
|
|
||||||
<string name="email_smtp">SMTP</string>
|
|
||||||
<string name="email_imap">IMAP </string>
|
|
||||||
<string name="email_host">Server Host</string>
|
<string name="email_host">Server Host</string>
|
||||||
<string name="smtp_port">Server Port</string>
|
<string name="smtp_port">Server Port</string>
|
||||||
<string name="enable_ssl">SSL</string>
|
<string name="enable_ssl">SSL</string>
|
||||||
@ -444,4 +441,8 @@
|
|||||||
<string name="one_pixel">One Pixel</string>
|
<string name="one_pixel">One Pixel</string>
|
||||||
<string name="one_pixel_activity">One Pixel Activity</string>
|
<string name="one_pixel_activity">One Pixel Activity</string>
|
||||||
<string name="one_pixel_activity_tips">This can change the process priority from 4 to 1</string>
|
<string name="one_pixel_activity_tips">This can change the process priority from 4 to 1</string>
|
||||||
|
<string name="hint_from_add">Fill in the username before @</string>
|
||||||
|
<string name="hint_from_add_full">format: AAA@BBB.CCC</string>
|
||||||
|
<string name="other_mail_type">Other</string>
|
||||||
|
<string name="tips_other_mail_type">For other email addresses, please fill in the complete email address and manually fill in the SMTP server information</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
15
app/src/main/res/values/arrays.xml
Normal file
15
app/src/main/res/values/arrays.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string-array name="MailType">
|
||||||
|
<item>\@qq.com</item>
|
||||||
|
<item>\@foxmail.com</item>
|
||||||
|
<item>\@exmail.qq.com</item>
|
||||||
|
<item>\@outlook.com</item>
|
||||||
|
<item>\@office365.com</item>
|
||||||
|
<item>\@gmail.com</item>
|
||||||
|
<item>\@yeah.net</item>
|
||||||
|
<item>\@163.com</item>
|
||||||
|
<item>\@126.com</item>
|
||||||
|
<item>其他邮箱</item><!--注意这里不能修改-->
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
@ -135,14 +135,11 @@
|
|||||||
<string name="dingding_secret">加签 Secret (没有可不填)</string>
|
<string name="dingding_secret">加签 Secret (没有可不填)</string>
|
||||||
<string name="dingding_at">转发时@某人</string>
|
<string name="dingding_at">转发时@某人</string>
|
||||||
<string name="dingding_at_tips">Tips:多个手机号用逗号分开,例如:18888888888,19999999999</string>
|
<string name="dingding_at_tips">Tips:多个手机号用逗号分开,例如:18888888888,19999999999</string>
|
||||||
<string name="email_protocol">协议类型</string>
|
|
||||||
<string name="email_smtp">SMTP</string>
|
|
||||||
<string name="email_imap">IMAP</string>
|
|
||||||
<string name="email_host">服务器地址</string>
|
<string name="email_host">服务器地址</string>
|
||||||
<string name="smtp_port">服务器端口</string>
|
<string name="smtp_port">服务器端口</string>
|
||||||
<string name="enable_ssl">开启SSL</string>
|
<string name="enable_ssl">开启SSL</string>
|
||||||
<string name="email_account">发件人邮箱</string>
|
<string name="email_account">发件邮箱</string>
|
||||||
<string name="email_password">登录密码/授权码</string>
|
<string name="email_password">登录密码</string>
|
||||||
<string name="email_nickname">发件人昵称</string>
|
<string name="email_nickname">发件人昵称</string>
|
||||||
<string name="email_to">收件地址</string>
|
<string name="email_to">收件地址</string>
|
||||||
<string name="email_to_tips">Tip:多个收件人以半角逗号,分隔</string>
|
<string name="email_to_tips">Tip:多个收件人以半角逗号,分隔</string>
|
||||||
@ -443,4 +440,8 @@
|
|||||||
<string name="one_pixel">1像素</string>
|
<string name="one_pixel">1像素</string>
|
||||||
<string name="one_pixel_activity">1像素透明Activity保活</string>
|
<string name="one_pixel_activity">1像素透明Activity保活</string>
|
||||||
<string name="one_pixel_activity_tips">【按需启用】使进程的优先级在屏幕锁屏时间由4提升为最高优先级1</string>
|
<string name="one_pixel_activity_tips">【按需启用】使进程的优先级在屏幕锁屏时间由4提升为最高优先级1</string>
|
||||||
|
<string name="hint_from_add">填写 @ 前面的用户名</string>
|
||||||
|
<string name="hint_from_add_full">填写格式: AAA@BBB.CCC</string>
|
||||||
|
<string name="other_mail_type">其他邮箱</string>
|
||||||
|
<string name="tips_other_mail_type">其他邮箱,请填写完整的邮箱地址并手动填写SMTP服务器信息</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -106,4 +106,10 @@
|
|||||||
<style name="OnePixelActivity" parent="Theme.MaterialComponents.Light.NoActionBar">
|
<style name="OnePixelActivity" parent="Theme.MaterialComponents.Light.NoActionBar">
|
||||||
<item name="android:windowIsTranslucent">true</item>
|
<item name="android:windowIsTranslucent">true</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="dialog_spinner_style" parent="@android:style/Widget.TextView.SpinnerItem">
|
||||||
|
<item name="android:textSize">13sp</item>
|
||||||
|
<item name="android:layout_margin">0dp</item>
|
||||||
|
<item name="android:padding">0dp</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user