gpt4 book ai didi

java - Android使用smtp发送邮件到gmail

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:05 25 4
gpt4 key购买 nike

Session session = null;
ProgressDialog pdialog = null;
Context context = null;
EditText reciep, sub, msg;
String rec, subject, textMessage;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.b9);

context = this;

Button login = (Button) findViewById(R.id.btn_submit);
reciep = (EditText) findViewById(R.id.et_to);
sub = (EditText) findViewById(R.id.et_sub);
msg = (EditText) findViewById(R.id.et_text);

login.setOnClickListener(this);
}

@Override
public void onClick(View v) {
rec = reciep.getText().toString();
subject = sub.getText().toString();
textMessage = msg.getText().toString();
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "587");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");

session = Session.getDefaultInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xyz@gmail.com", "xyz123");
}
});

pdialog = ProgressDialog.show(context, "", "Sending Mail...", true);

RetrieveFeedTask task = new RetrieveFeedTask();
task.execute();
}

检索提要任务

  class RetrieveFeedTask extends AsyncTask<String, Void, String> {

@Override
protected String doInBackground(String... params) {

try{
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("xyz@gmail.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.
parse(rec));
message.setSubject(subject);
message.setContent(textMessage, "text/html; charset=utf-8");
Transport.send(message);
} catch(MessagingException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(String result) {
pdialog.dismiss();
reciep.setText("");
msg.setText("");
sub.setText("");
Toast.makeText(getApplicationContext(), "Message sent", Toast.LENGTH_LONG).show();
}
}
}

我收到以下错误,我无法在收件箱中接收邮件

错误:

            javax.mail.MessagingException: Could not connect to SMTP host:         smtp.gmail.com, port: 587;
nested exception is:
avax.net.ssl.SSLHandshakeException: j avax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x755e6040: Failure in SSL library, usually a protocol error
at javax.mail.Service.connect(Service.java:310)
at javax.mail.Service.connect(Service.java:169)
at javax.mail.Service.connect(Service.java:118)
at javax.mail.Transport.send0(Transport.java:188)
at javax.mail.Transport.send(Transport.java:118)


at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x755e6040: Failure in SSL library, usually a protocol error
error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol (external/openssl/ssl/s23_clnt.c:769 0x72fb0d74:0x00000000)
at mpl.getInputStream(OpenSSLSocketImpl.java:633)

getSelectedText on inactive InputConnection
getSelectedText on inactive InputConnection
getSelectedText on inactive InputConnection
getSelectedText on inactive InputConnection
getSelectedText on inactive InputConnection
getSelectedText on inactive InputConnection
getSelectedText on inactive InputConnection
getSelectedText on inactive InputConnection

getSelectedText on inactive InputConnection
getTextBeforeCursor on inactive InputConnection

最佳答案

如果您使用的是 SSL,正确的端口是 465。587 用于 TLS

https://support.google.com/mail/answer/13287?hl=en

如果这不是问题,请尝试按照本教程进行操作

http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/

关于java - Android使用smtp发送邮件到gmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32693402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com