0

JavaMail を使用してバグ レポートを送信しています...すべてが機能していますが、Gmail は、奇妙なアプリ (私のアプリ) がメールを送信しようとしたと言っています... リンクをクリックしてアプリを再起動する必要があります。その後、このアプリはメールの送信を許可されています...

アプリを他のユーザーに送信するとどうなりますか? 送信の試みはすべて失敗しますか? マーケットアプリと通常のアプリの違いはありますか? 署名されたアプリと署名されていないアプリの間?

4

2 に答える 2

0

次に、これを試してください:

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();
}
于 2012-12-07T19:55:06.740 に答える
0

このコードを試してください。

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);
                }
            }
        });
    }
}

詳細については、以下のリンクを参照してください。

Android – GMail 経由でメールを送信 (実際には SMTP 経由)

于 2013-01-10T09:50:23.197 に答える