通过Gmail服务器以Java发送电子邮件

【通过Gmail服务器以Java发送电子邮件】我们可以使用gmail的SMTP服务器发送电子邮件。如果你没有任何SMTP服务器且可靠, 那就很好。在这里, 我们将学习如何通过SSL(安全套接字层)通过gmail服务器发送电子邮件。如果你通过gmail服务器发送电子邮件, 则SSL基本用于安全性。

为了更好地理解此示例, 请首先学习使用JavaMail API发送电子邮件的步骤。
要使用JavaMail API发送电子邮件, 你需要加载两个jar文件:mail.jar activation.jar下载这些jar文件(或)到Oracle网站下载最新版本。
禁用防病毒软件, 例如avast等, 因为它可能会中断你的代码以发送电子邮件。通过具有SSL的Gmail服务器发送电子邮件的示例
import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; class Mailer{ public static void send(String from, String password, String to, String sub, String msg){ //Get properties object 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"); //get Session Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(from, password); } }); //compose message try { MimeMessage message = new MimeMessage(session); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(sub); message.setText(msg); //send message Transport.send(message); System.out.println("message sent successfully"); } catch (MessagingException e) {throw new RuntimeException(e); } } } public class SendMailSSL{ public static void main(String[] args) { //from, password, to, subject, message Mailer.send("from@gmail.com", "xxxxx", "to@gmail.com", "hello srcmini", "How r u?"); //change from, password and to } }

如你在上面的示例中看到的, 需要对用户标识和密码进行身份验证。如该程序所示, 你可以轻松发送电子邮件, 但可以相应地更改用户名和密码。让我们看看如何通过简单的技术再次运行它:
加载jar文件 c:\> set classpath = mail.jar; activation.jar; 。;
编译源文件 c:\> javac SendMailSSL.java
run by c:\> Java SendMailSSL
解决AuthenticationFailedException单击此链接, 然后单击打开单选按钮, 以允许用户从未知位置发送邮件。 https://www.google.com/settings/security/lesssecureapps

    推荐阅读