- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Java Mail API 通过 Exchange Server (Office 365) 发送邮件。以下是我的代码:
package com.package;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
public class Mail {
ResourceBundle rb = ResourceBundle.getBundle("settings", Locale.ENGLISH);
public void sendMail(String body, String subject, String receipients) throws MessagingException ////this is used to send the emails
{
Message message = new MimeMessage(getSession());
message.addRecipient(RecipientType.TO, new InternetAddress(receipients));
message.addFrom(new InternetAddress[] { new InternetAddress(rb.getString("from")) });
message.setSubject(subject);
message.setContent(body, "text/plain");
Transport.send(message);
}
private Session getSession() {
Authenticator authenticator = new Authenticator();
Properties properties = new Properties();
System.out.println("Submitter : " + authenticator.getPasswordAuthentication().getUserName());
properties.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.starttls.enable","true");
properties.setProperty("mail.smtp.host", "smtp.office365.com");
properties.setProperty("mail.smtp.port", "587");
return Session.getInstance(properties, authenticator);
}
private class Authenticator extends javax.mail.Authenticator {
String username, password;
public Authenticator() {
username = rb.getString("from");
password = rb.getString("password");
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
public static void main(String[] args) {
try {
new Mail().sendMail("Testing Mail", "Test", "someuser@ymail.com");
System.out.println("Mail sent");
} catch (MessagingException e) {
// TODO Auto-generated catch block
System.out.println("Unable to send mail");
e.printStackTrace();
}
}
}
当我运行此程序时,控制台显示以下内容:
>>>>>Sending data EHLO HP-WIN8<<<<<<
>>>>>Sending data STARTTLS<<<<<<
>>>>>Sending data EHLO HP-WIN8<<<<<<
>>>>>Sending data AUTH LOGIN<<<<<<
>>>>>Sending data ImFzaGZhcS5tZW1vbkBzdHJlZWJvLmNvbSI=<<<<<<
>>>>>Sending data IlN1bmlAMTk5MSI=<<<<<<
>>>>>Sending data QUIT<<<<<<
Unable to send mail
javax.mail.SendFailedException: Send failure (javax.mail.AuthenticationFailedException: Error authenticating with server)
at javax.mail.Transport.send(Transport.java:163)
at javax.mail.Transport.send(Transport.java:48)
at com.streebo.Mail.sendMail(Mail.java:33)
at com.streebo.Mail.main(Mail.java:66)
Caused by: javax.mail.AuthenticationFailedException: Error authenticating with server
at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:402)
at javax.mail.Service.connect(Service.java:265)
at javax.mail.Service.connect(Service.java:85)
at javax.mail.Service.connect(Service.java:70)
at javax.mail.Transport.send(Transport.java:94)
... 3 more
我已经检查了我的邮件 ID 和密码,它们是正确的,但我仍然遇到此异常。
请检查我的程序是否有问题。
最佳答案
由于我在使用创建的 gmail.com 测试帐户时遇到了同样的问题(假设使用了正确的凭据),一个可能的原因可能是
您可能使用了通过 gmail/yahoo/hotmail 托管/创建的电子邮件进行测试。
如果您收到 javax.mail.AuthenticationFailedException,请尝试使用凭据登录邮件帐户,gmail 会要求您输入验证码。登录成功后即可使用Java邮件API发送邮件。
服务提供商这样做是为了防止垃圾邮件发送者,为了进行测试,我们创建一个帐户,并且不会将其用于任何其他用途。
关于javax.mail.AuthenticationFailedException : Error authenticating with server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22905845/
我正在尝试使用 Gmail smtp 服务器从我的应用发送电子邮件。为此,我使用 javax 库。 MailSender.java public class MailSender { final St
对不起我的英语!当我尝试使用 Android 中的 JavaMail API 从我的 gmail 帐户发送电子邮件时出现错误。我收到此错误:AuthenticationFailedException。
我不熟悉这个在java中发送邮件的功能。我在注册后发送电子邮件以确认用户时遇到错误。 下面是 TextMail 中的代码: public class TextMail extends HttpServ
我编写了一个程序来使用 JavaMail 检查邮件。代码如下: private static Folder getFolder(String popHost, int openPort, MailAu
代码: package maintestcases; import org.testng.annotations.Test; import java.io.IOException; impor
我的目标是通过电子邮件发送数据帧。下面是我的一段代码: import javax.mail._ import javax.mail.internet._ import org.apache.spark
我正在尝试使用 java API 发送电子邮件,并且提供了正确的电子邮件 ID 和密码,但仍然收到 AuthenticationFailedException。 我还尝试提供 host=mail.sm
我正在使用下面的代码使用 Java mail 1.6.2 阅读 Outlook 电子邮件 Properties props = new Properties();
这是我的配置文件。同时,我还在接收方电子邮件中启用了“不太安全的应用程序是真实的”。我正在使用 587 smpt.gmail.com 端口,因为我仅使用 HTTP,而不是 HTTPS。在本地服务器中,
我已经看过这个问题的所有答案。但我的邮件没有发送。实际上,当我使谷歌安全性降低时它会发送。但对我来说这不是一个解决方案!因为它使 Gmail 帐户不 protected ,所以使用该应用程序的人也不想
我正在制作一个程序,将信息发送到我的电子邮件,并且我正在从给定的 java 代码中进行引用。但我收到身份验证失败错误。任何人都知道发送 SMTP 邮件而不会让 gmail 和 yahoo 的安全性降低
嗨,我已经编写了一个使用 java 邮件从我的服务器发送邮件的代码 这是我的代码 Properties pros = new Properties(); pros.put("mail.smtp.hos
谁能告诉我为什么应用会抛出这个? W/System.err: javax.mail.AuthenticationFailedException at javax.mail.Servic
我尝试使用以下代码发送邮件,但出现类似异常的情况。 javax.mail.AuthenticationFailedException at javax.mail.Service.connect
我做了一个小程序,可以将消息发送到我的电子邮件帐户。我的大部分代码似乎都可以正常工作。但是,当我的代码在我的程序中命中 transport.send 时,我遇到了 AuthenticationFail
我不熟悉这个在java中发送邮件的功能。我在发送电子邮件以重置密码时遇到错误。希望你能给我一个解决方案。 下面是我的代码: public synchronized static boolean sen
该程序尝试发送电子邮件,但引发运行时异常:AuthenticationFailedException 我已经提到了 stackoverflow 问题并回答了我已经实现的相同问题,但我仍然遇到这样的异常
虽然我使用了正确的凭据,但我无法使用 java 阅读电子邮件 我尝试过 pop3 和 IMAP。所有尝试过的 EmailId 均显示无效凭据 Session session = Session.get
我正在尝试在 NetBeans 中创建电子邮件客户端来发送电子邮件,但我的代码中收到 AuthenticationFailedException 。这是我的代码(共有三个类): EmailClient
我正在尝试使用 Java Mail API 通过 Exchange Server (Office 365) 发送邮件。以下是我的代码: package com.package; import java
我是一名优秀的程序员,十分优秀!