JavaMail を使用してバグ レポートを送信しています...すべてが機能していますが、Gmail は、奇妙なアプリ (私のアプリ) がメールを送信しようとしたと言っています... リンクをクリックしてアプリを再起動する必要があります。その後、このアプリはメールの送信を許可されています...
アプリを他のユーザーに送信するとどうなりますか? 送信の試みはすべて失敗しますか? マーケットアプリと通常のアプリの違いはありますか? 署名されたアプリと署名されていないアプリの間?
JavaMail を使用してバグ レポートを送信しています...すべてが機能していますが、Gmail は、奇妙なアプリ (私のアプリ) がメールを送信しようとしたと言っています... リンクをクリックしてアプリを再起動する必要があります。その後、このアプリはメールの送信を許可されています...
アプリを他のユーザーに送信するとどうなりますか? 送信の試みはすべて失敗しますか? マーケットアプリと通常のアプリの違いはありますか? 署名されたアプリと署名されていないアプリの間?
次に、これを試してください:
public void envioEmail(final String from, final String mailhost, final String user, final String password, final Boolean auth, final String destinatario, final String assunto, final String mensagem) throws MessagingException, IOException {
new Thread(){
@Override
public void run() {
Properties props = System.getProperties();
if (mailhost != null) props.put("mail.smtp.host", mailhost);
if (auth) props.put("mail.smtp.auth", "true");
props.setProperty("mail.smtp.starttls.enable", "true");
Authenticator authh = new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
};
javax.mail.Session session = javax.mail.Session.getInstance(props, authh);
javax.mail.Message msg = new MimeMessage(session);
try {
msg.setFrom(new InternetAddress(from));
msg.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(destinatario));
msg.setSubject(assunto);
msg.setSentDate(new Date());
msg.setText(mensagem);
SMTPTransport t = (SMTPTransport) session.getTransport(ssl ? "smtps" : "smtp");
try {
if (auth){
t.connect(mailhost, user, password);
t.sendMessage(msg, msg.getAllRecipients());
}else{
t.connect();
t.sendMessage(msg, msg.getAllRecipients());
}
} finally {
t.close();
}
flag = true;
atualizaTelaConexao("E-Mail enviado com sucesso!", ctx);
} catch (MessagingException e) {
flag = false;
atualizaTelaConexao("Erro ao enviar E-Mail! Verifique as configuracoes de e-mail", ctx);
}
}
}.start();
}
このコードを試してください。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button login = (Button) findViewById(R.id.mBtnSubmit);
login.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("dipakkeshariya@android.com", "dipakkeshariya");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("dipak.keshariya@android.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("dipak.keshariya@mobileappdeveloper.com"));
message.setSubject("Testing Subject");
message.setContent("Hi Dipak Keshariya (Android Developer)", "text/html; charset=utf-8");
Transport.send(message);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
});
}
}
詳細については、以下のリンクを参照してください。