在发帖之前,我已经在网上读了很多东西和建议的问题,但是没有找到任何适合我的东西。
在过去的5天里,我一直在寻找一个解决办法,但就是找不到。
相关代码:
private void sendMail(){
final String username = "foo";
final String password = "bar";
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", true); // added this line
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.user", username);
props.put("mail.smtp.password", password);
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", true);
props.put("mail.debug", "true");
Session session = Session.getInstance(props,null);
MimeMessage message = new MimeMessage(session);
System.out.println("Port: "+session.getProperty("mail.smtp.port"));
// Create the email addresses involved
try {
InternetAddress from = new InternetAddress(username);
message.setSubject("Yes we can");
message.setFrom(from);
message.addRecipients(Message.RecipientType.TO, InternetAddress.parse("ardilgulez@gmail.com"));
// Create a multi-part to combine the parts
Multipart multipart = new MimeMultipart("alternative");
// Create your text message part
BodyPart messageBodyPart = new MimeBodyPart();
String htmlMessage = "Our html text";
messageBodyPart.setContent(htmlMessage, "text/html");
// Add html part to multi part
multipart.addBodyPart(messageBodyPart);
// Associate multi-part with message
message.setContent(multipart);
// Send message
Transport transport = session.getTransport("smtp");
transport.connect("smtp.gmail.com", username, password);
System.out.println("Transport: "+transport.toString());
transport.sendMessage(message, message.getAllRecipients());
} catch (MessagingException e) {
e.printStackTrace();
}
}
邮件调试日志文件:
调试:JavaMail版本1.4.1.....debug:!anyloaded
调试:未加载资源:/meta-inf/javamail.address.map
debug:未加载文件:C:\Java\jdk16~1.0_4\jre\lib\javamail.address.map
debug:Java.io.FileNotFoundException:C:\Java\jdk16~1.0_4\jre\lib\javamail.address.map(系统找不到指定的文件)
端口:587
debug:getProvider()返回javax.mail.provider[TRANSPORT,smtp,com.Sun.mail.smtp.smtptransport,Sun Microsystems,Inc]
调试SMTP:useEhlo true,useAuth false
调试SMTP:正在尝试连接到主机“smtp.gmail.com”,端口587,isSSL false 220 smtp.gmail.com ESMTP T2SM2978726WME.0-gsmtp
调试SMTP:已连接到主机“smtp.gmail.com”,端口:587
EHLO FOO
250-smtp.gmail.com为您服务,[212.156.0.126]
250-尺寸35882577
250-8bitmime
250-starttls
250-增强状态代码
250-流水线
250块
250 SMTPUTF8
调试SMTP:找到扩展名“size”,参数“35882577”
调试SMTP:找到扩展“8BitMime”,arg“”
调试SMTP:找到扩展名“starttls”,arg“”
调试SMTP:找到扩展名“EnhancedStatusCodes”,arg“”
调试SMTP:找到扩展“Pipelining”,参数“”
调试SMTP:找到扩展“chunking”,参数“”
调试SMTP:找到扩展名“SMTPUTF8”,参数“”
传输:smtp://foo@smtp.gmail.com
调试SMTP:use8bit false
邮件来源:
530 5.7.0必须首先发出STARTTLS命令。T2SM2978726WME.0-gsmtp
DEBUG smtp:得到响应代码530,其中响应:530 5.7.0必须首先发出STARTTLS命令。T2SM2978726WME.0-gsmtp
因为您使用的是非常旧的JavaMail,所以需要使用以下内容:
props.put("mail.smtp.starttls.enable", "true");
注意引号。
更好的方法是升级到当前版本。
哦,而且没有mail.smtp.password属性,您也不需要mail.smtp.host和mail.smtp.user属性,因为您要将它们显式传递给connect方法。
问题内容: 我正在使用我的帐户运行此简单示例,但该示例无法正常工作并给出以下错误: 这是我的代码 问题答案: 您可能正在尝试使用端口25上的Gmail服务器通过未经身份验证的连接将邮件传递给第三方。Gmail不允许您这样做,因为这样 任何人 都可以使用Gmail的服务器将邮件发送给其他任何人。这称为 开放中继 ,在早期是垃圾邮件的常见促成因素。Internet上不再接受开放中继。 您将需要让SMT
问题内容: SMTP服务器响应:530 5.7.0必须首先发出STARTTLS命令 我在php脚本文件中使用mail()函数时收到此错误消息… 我正在使用gmail SMTP服务器和gmail使用STARTTLS(这是安全SSL),并且我已经在我的contact.php文件中使用了这些命令 所以我可以使用什么命令来启用STARTTLS或在php,ini文件中进行配置? 问题答案: 首先,确保您的P
问题内容: 我正在创建一个应用程序并尝试向其中添加电子邮件功能,为此我在build.sbt文件中添加了依赖项,但下面解释了一个异常 我的密码 application.conf中包含的代码 但我有一个例外 我怎么解决这个问题? 问题答案: 我认为您必须先指定要发送TLS电子邮件,然后再发送电子邮件。 我不确定100%,但是我认为它可以解决问题。 另外,有关更多信息,您可以参考此用户指南:https
我试图发送电子邮件从php到一个gmail帐户。我的笔记本电脑上有以下设置: Windows 8 Internet连接 XAMPP 1.7.4,PHP版本5.3.5, 我有以下php.ini设置 [邮件功能];仅适用于Win32。;http://php.net/SMTP SMTP=SMTP.gmail.com;http://php.net/smtp-端口 smtp_port=:465 ;仅适用于W
在构建一个插件时,我会遇到一个“找不到类”的异常 有人已经设法创建了插件或类加载器XPages就这样杀死了?
当我试图从“smtpout.asia.secureserver.net”发送邮件时,它是从本地主机而不是“secureserver”主机发送的。下面是代码: catt(MessagingExc的e){抛出新的Runtime异常(e);} 调试: 但是如果我将主机更改为“smtp.gmail.com”,它就可以正常工作。