【问题标题】:send email w/o gmail authentication in java在 java 中发送没有 gmail 身份验证的电子邮件
【发布时间】:2012-12-02 06:56:26
【问题描述】:

您好,我必须用 java 发送电子邮件。

以下内容已成功为我工作。

          public class SendMail {

             public static void main(String[] args) {                   
                 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("xxxx@gmail.com","xxxxx!1");
                                     }
                                   });

                  try {
                        Message message = new MimeMessage(session);
                        message.setFrom(new InternetAddress("krishnaveni.veeman@gmail.com"));
                        message.setRecipients(Message.RecipientType.TO,
                                      InternetAddress.parse("mercy.krishnaveni@gmail.com"));
                        message.setSubject("Testing Subject");
                        message.setText("Dear Mail Crawler," +
                                      "\n\n No spam to my email, please!");
                        Transport.send(message);
                        System.out.println("Done"); 
                      } catch (MessagingException e) {
                          throw new RuntimeException(e);
                      }
              }

           }

这里我提到了 gmail 用户名和密码。但是我必须在我的代码中不使用用户名和密码的情况下发送电子邮件。我该如何开发这个。请帮帮我。

【问题讨论】:

  • 我现在要做的第一件事就是在这里发布后更改我的 gmail 密码!!为了获得更高的安全性,还请打开 2 因素身份验证。
  • 是的,在 stackoverflow 上询问时,您应该始终混淆敏感数据(公司名称等)。
  • 离题:你不应该给垃圾邮件发送者写邮件

标签: java authentication smtp sendmail


【解决方案1】:

创建一个mail.properties 文件并将用户名和密码放入该文件中。在您的代码中使用属性从该文件中检索数据。

此链接可用于加载 Properties 对象

http://www.dzone.com/snippets/loading-property-file

【讨论】:

  • 我没有在我的代码中任何地方提到我的 gmail 用户名和密码。可以在 java 中发送邮件
  • 您可以从任何机器匿名发送电子邮件,无需在收件箱中发送。
  • 没有。我已经在我的收件箱中投递了邮件。但是在下面的代码中,我提到了我的 mailid 的用户名和密码。我没有同时提到用户名和密码邮件正在我的邮件收件箱中发送。任何其他可能的方式都可以在这里使用。 return new PasswordAuthentication("xxxxx@gmail.com","xxxx!1");
  • @user1897014 -“我没有在我的代码中任何地方提到我的 gmail 用户名和密码”是的。是的,你做到了。阅读您最初发布的代码。您的电子邮件帐户现在几乎肯定已经被盗用了。你在想什么?!
  • @JackManey 可能 OP 不知道 SO 会跟踪帖子上的编辑历史!
猜你喜欢
  • 2015-07-08
  • 2012-01-27
  • 1970-01-01
  • 2015-11-23
  • 2017-09-22
  • 2013-11-24
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
相关资源
最近更新 更多