Hello im使用cordova插件cordova plugin smtp客户端,我的代码设置如下:
var mailSettings = {
emailFrom: "",
emailTo: "",
smtp: "",
smtpUserName: "",
smtpPassword: "",
port: 25,
subject: “subject here”,
textBody: “body here”,
attachmentsInBase64Format: [],
};
var success = function(message) {
window.plugins.spinnerDialog.hide();
alert("Orden Enviada Satisfactoriamente");
}
var failure = function(message) {
window.plugins.spinnerDialog.hide();
console.log(message);
}
smtpClient.sendMail(mailSettings, success, failure);
但我的问题是我总是得到错误(无效操作),如果有人能帮助我们如何得到真正的错误,这样我就可以修复问题
提前感谢
我也面临同样的问题。我发现问题出在试图发送多封电子邮件时,地址在emailTo字段中。如果你发送到一个单一的电子邮件id,它将成功发送电子邮件。在SMTPClient.java中,您需要将第41行更改为以下内容:
String[] toArr = json.getString("emailTo").split(",");
这将解决多个电子邮件地址的问题。
我也遇到了同样的问题。它与权限有关,在Android 6(或更高版本)的设备中。
我使用Cordova诊断插件解决了问题,在DeviceReady功能中放入以下代码:
checkPermission = function () {
setMyPermission = function () {
cordova.plugins.diagnostic.requestExternalStorageAuthorization(function (status) {
switch (status) {
case cordova.plugins.diagnostic.permissionStatus.NOT_REQUESTED:
break;
case cordova.plugins.diagnostic.permissionStatus.DENIED:
break;
case cordova.plugins.diagnostic.permissionStatus.GRANTED:
break;
case cordova.plugins.diagnostic.permissionStatus.GRANTED_WHEN_IN_USE:
break;
}
}, function (error) {
alert(error);
});
};
cordova.plugins.diagnostic.getPermissionAuthorizationStatus(function (status) {
switch (status) {
case cordova.plugins.diagnostic.runtimePermissionStatus.GRANTED:
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.NOT_REQUESTED:
setMyPermission();
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED:
setMyPermission();
break;
case cordova.plugins.diagnostic.runtimePermissionStatus.DENIED_ALWAYS:
setMyPermission();
break;
}
}, function (error) {alert(error); }, cordova.plugins.diagnostic.runtimePermission.READ_EXTERNAL_STORAGE);
};
checkPermission();