使用Java Mail

时间:2016-06-29 08:43:45

标签: java outlook javamail

我想使用我的Java应用程序发送电子邮件。 当我按下按钮时,应该会自动发送一封电子邮件,但不知怎的,我还没有找到解决方案。 我在互联网上找到了很多示例代码,但如果我使用Gmail / gmx或outlook,我总是收到消息:

“无法连接到SMTP主机:mail.gmx.net,端口:587;   嵌套异常是:     java.net.ConnectException:连接超时:connect“

基于域名,所以主机是mail.gmx.net或smtp.office365.com等。 所以我认为有某种连接问题,但我无法解决它。 你有一些适合你的想法/代码吗?

提前谢谢。

托拜厄斯

1 个答案:

答案 0 :(得分:-1)

使用此代码发送电子邮件。这对我来说很好用

package SendMail;

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * @author akash073
 *
 */

public class CrunchifyJavaMailExample {

    //static Properties mailServerProperties;
   // static Session getMailSession;
  //  static MimeMessage generateMailMessage;

    public static void main(String args[]) throws AddressException, MessagingException {
        generateAndSendEmail();
        System.out.println("\n\n ===> Your Java Program has just sent an Email successfully. Check your email..");
    }

    public static void generateAndSendEmail() throws AddressException, MessagingException {

        String smtpHost="put Your Host";
        String smtpUser="UserName in full @somthing.com";
        String smtpPassword="your password";
        int smtpPort=25;//Port may vary.Check yours smtp port
        // Step1
        System.out.println("\n 1st ===> setup Mail Server Properties..");
        Properties mailServerProperties = System.getProperties();
        //mailServerProperties.put("mail.smtp.ssl.trust", smtpHost);
//        mailServerProperties.put("mail.smtp.starttls.enable", true); // added this line
        mailServerProperties.put("mail.smtp.host", smtpHost);
        mailServerProperties.put("mail.smtp.user", smtpUser);
        mailServerProperties.put("mail.smtp.password", smtpPassword);
        mailServerProperties.put("mail.smtp.port", smtpPort);

        mailServerProperties.put("mail.smtp.starttls.enable", "true");
        System.out.println("Mail Server Properties have been setup successfully..");

        // Step2
        System.out.println("\n\n 2nd ===> get Mail Session..");
        Session getMailSession = Session.getDefaultInstance(mailServerProperties, null);
        MimeMessage generateMailMessage = new MimeMessage(getMailSession);
        generateMailMessage.setFrom (new InternetAddress (smtpUser));
        generateMailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("akash073@waltonbd.com"));
        generateMailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress("akash073@gmail.com"));
        generateMailMessage.setSubject("Greetings from Crunchify..");
        String emailBody = "2.Test email by Crunchify.com JavaMail API example. " + "<br><br> Regards, <br>Crunchify Admin";
        generateMailMessage.setContent(emailBody, "text/html");
        System.out.println("Mail Session has been created successfully..");

        // Step3
        System.out.println("\n\n 3rd ===> Get Session and Send mail");
        Transport transport = getMailSession.getTransport("smtp");

        // Enter your correct gmail UserID and Password
        // if you have 2FA enabled then provide App Specific Password
        transport.connect(smtpHost,smtpPort, smtpUser, smtpPassword);
        transport.sendMessage(generateMailMessage, generateMailMessage.getAllRecipients());
        transport.close();
    }
}

了解更多信息crunchify