次のコードを使用して、アプリでメールを送信しています
デフォルト/組み込みアプリを使用せずにJavaMailAPIを使用してAndroidでメールを送信する
これは以前は機能していましたが、NetworkOnMainThreadExceoptionで停止しました。解決策はAsyncTaskを使用することですが、AsyncTaskを使用するために現在必要なクラスを変換する方法がわかりません。以前は使用していません。
以下は、失敗しているクラスの送信部分です。
public class EmailProvider extends Authenticator {
private static String emailUsername = "";
private static String emailPassword = "";
private static String emailFrom = "";
private static String emailDefaultSMTPport =
private static String emailDefaultSocketFactoryPort =
private static String emailHost = "";
private boolean emailAuth;
private boolean emailDebuggable;
private Multipart emailMultipart;
public EmailProvider(Context context) {
//this.context = context;
emailDebuggable = false; // debug mode on or off - default off
emailAuth = true; // smtp authentication - default on
emailMultipart = new MimeMultipart();
}
public boolean send(String emailAddress, String pEmailSubject, String pEmailBody) throws Exception {
Properties props = setProperties();
Session session = Session.getInstance(props, this);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(emailFrom));
msg.setRecipients(MimeMessage.RecipientType.TO, emailAddress);
msg.setSubject(pEmailSubject);
msg.setSentDate(new Date());
// setup message body
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(pEmailBody);
emailMultipart.addBodyPart(messageBodyPart);
// Put parts in message
msg.setContent(emailMultipart);
// send email
Transport.send(msg);
return true;
}
}
御時間ありがとうございます