大家好,我刚刚尝试获取一些Java代码,以通过gmail向Java用户发送电子邮件,这就是我所拥有的:

@ManagedBean

@ViewScoped

public class email {

// Set up the SMTP server.

java.util.Properties props = new java.util.Properties();

public void mail() {

System.out.println("Called mail");

props.put(

"mail.smtp.gmail", "smtp.gmail.com");

props.put("mail.smtp.port", "587");

Session session = Session.getDefaultInstance(props, null);

// Construct the message

String to = "cam01342@myport.ac.uk";

String from = "richard.dennis@port.ac.uk";

String subject = "Hello";

Message msg = new MimeMessage(session);

try {

System.out.println("Setting up the email");

msg.setFrom(new InternetAddress(from));

msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));

System.out.println("here");

msg.setSubject("Print Job");

msg.setText("Hi,

How are you?");

Transport.send(msg);

System.out.println("Sending message"); //does not get to this part

} catch (MessagingException e) {

// Error.

}

}

}

它在运行等时没有错误,我在控制台中没有收到发送消息,而只是Transport.send(msg)阻塞了我做错了什么? gmail的设置都可以吗?

编辑:

@ManagedBean

@ViewScoped

public class email {

// Set up the SMTP server.

java.util.Properties props = new java.util.Properties();

public void mail() {

System.out.println("Called mail");

String host = "smtp.gmail.com";

String from = "------------";

String pass = "----";

props.put("mail.smtp.starttls.enable", "true"); // added this line

props.put("mail.smtp.host", host);

props.put("mail.smtp.user", from);

props.put("mail.smtp.password", pass);

props.put("mail.smtp.port", "587");

props.put("mail.smtp.auth", "true");

Session session = Session.getDefaultInstance(props, null);

// Construct the message

String to = "--------";

String subject = "Hello";

Message msg = new MimeMessage(session);

try {

System.out.println("Setting up the email");

msg.setFrom(new InternetAddress(from));

msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));

System.out.println("here");

msg.setSubject("Print Job");

msg.setText("Hi,

How are you?");

Transport.send(msg);

System.out.println("Sending message"); //does not get to this part

} catch (MessagingException e) {

// Error.

}

}

}

编辑:

在提供给我的链接之一中尝试示例:

@ManagedBean

@ViewScoped

public class email {

// Set up the SMTP server.

public void mail() throws MessagingException {

String host = "smtp.gmail.com";

String from = "------------";

String pass = "------";

Properties props = System.getProperties();

props.put("mail.smtp.starttls.enable", "true"); // added this line

props.put("mail.smtp.host", host);

props.put("mail.smtp.user", from);

props.put("mail.smtp.password", pass);

props.put("mail.smtp.port", "587");

props.put("mail.smtp.auth", "true");

String[] to = {"-----------"}; // added this line

Session session = Session.getDefaultInstance(props, null);

MimeMessage message = new MimeMessage(session);

message.setFrom(new InternetAddress(from));

InternetAddress[] toAddress = new InternetAddress[to.length];

// To get the array of addresses

for (int i = 0; i < to.length; i++) { // changed from a while loop

toAddress[i] = new InternetAddress(to[i]);

}

System.out.println(Message.RecipientType.TO);

for (int i = 0; i < toAddress.length; i++) { // changed from a while loop

message.addRecipient(Message.RecipientType.TO, toAddress[i]);

}

message.setSubject("sending in a group");

message.setText("Welcome to JavaMail");

Transport transport = session.getTransport("smtp");

transport.connect(host, from, pass);

transport.sendMessage(message, message.getAllRecipients());

transport.close();

}

}

这抛出了这个错误:

INFO: To

WARNING: #{email.mail()}: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;

nested exception is:

java.net.ConnectException: Connection timed out: connect

javax.faces.FacesException: #{email.mail()}: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;

nested exception is:

java.net.ConnectException: Connection timed out: connect

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)

at javax.faces.component.UICommand.broadcast(UICommand.java:315)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:722)

Caused by: javax.faces.el.EvaluationException: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;

nested exception is:

java.net.ConnectException: Connection timed out: connect

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)

... 36 more

Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;

nested exception is:

java.net.ConnectException: Connection timed out: connect

at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)

at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)

at javax.mail.Service.connect(Service.java:295)

at javax.mail.Service.connect(Service.java:176)

at richard.fileupload.email.mail(email.java:101)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:779)

at javax.el.BeanELResolver.invoke(BeanELResolver.java:528)

at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:257)

at com.sun.el.parser.AstValue.invoke(AstValue.java:248)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)

at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)

at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

... 37 more

Caused by: java.net.ConnectException: Connection timed out: connect

at java.net.DualStackPlainSocketImpl.connect0(Native Method)

at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)

at java.net.Socket.connect(Socket.java:579)

at java.net.Socket.connect(Socket.java:528)

at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)

at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)

at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)

... 54 more

java gmail 发送邮件_Java通过Gmail发送电子邮件相关推荐

  1. java ssl发送邮件_通过SSL发送的Java邮件

    java ssl发送邮件 抽象 本博客的目的是演示如何使用Java Mail通过具有SSL连接的SMTP服务器发送电子邮件. 免责声明 这篇文章仅供参考. 在使用所提供的任何信息之前,请认真思考. 从 ...

  2. 发送邮件 ajax,使用Ajax发送电子邮件

    我正在使用以下内容通过ajax发送电子邮件.它没有发送name. var submitForm = function(){ var name = jQuery('[name=name]').val() ...

  3. php使用gmail发送邮件,PHP使用gmail发邮件

    实验室要举办一个会议,要我做一个会议的网站.使用了开源的openconf,十分省事.但发邮件简单的使用了PHP的mail函数,没有经过SMTP认证,发送的邮件很可能出现在对方的垃圾箱里,甚至会被退信. ...

  4. 发送邮件_使用 Python 发送电子邮件

    在实际运用中,我们可能需要通过电子邮件告诉我们 Python 运行的结果的是否与预期的一致.现在我们就来看一下,怎么通过 Python 发送邮件. 这个示例中我们需要用到的第三方库有: •smtpli ...

  5. ews java 新建邮箱_通过EWS发送电子邮件时使用自定义显示名称

    我正在使用 EWS (Exchange Web Services) 与 Exchange 2010 在我们的组织内部生成和发送电子邮件 . 我们目前有一个邮箱/用户,我们所有的应用程序都通过这个邮箱/ ...

  6. java 批量发送邮件_java – 提高通过spring-mail发送批量电子邮件的性能

    我有一个独立于spring-stand的应用程序,它使用如下的简单弹簧电子邮件代码,to和消息是使用从map迭代的值构造的. 我已经对here问题提出了一些建议,但我需要一些具体的建议.下面是我的代码 ...

  7. java 延时发送邮件_java编程实现邮件定时发送的方法

    本文实例讲述了java编程实现邮件定时发送的方法.分享给大家供大家参考,具体如下: 最近做项目时客户提出了一个需求:系统定时发送E-mail到其客户,达到通知的效果.先将实例分享给大家,如果确实有一些 ...

  8. java 邮件 附件_java中javamail发送带附件的邮件实现方法

    本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理em ...

  9. java connection 共享_java 使用HttpURLConnection发送数据简单实例

    java 使用HttpURLConnection发送数据简单实例 每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求 ...

最新文章

  1. 某学校学生在计算机等级水平测试中,提高中职学校计算机等级考试(一级)通过率的教学策略研究...
  2. 深入理解SELinux SEAndroid
  3. 1.16 快速排序法(Quicksort)
  4. 送出orkut邀请,当然如果需要gmail邀请,还有很多
  5. .netcore 分布式事务CAP2.6 快速入门
  6. 计算机课实验三,成都信息工程学院计算机网络课程实验三
  7. php mysql 拼音首字母,Mysql应用MySQL查询汉字的拼音首字母实例教程
  8. 巧用 | 低成本高可用,巧用Redis
  9. ucc编译器(中间代码生成)
  10. ASP.Net Jquery 随机验证码 文本框判断
  11. IIS 6.0 SSL证书安装
  12. 全栈开发实战(二)——简易博客社区前端搭建教程(附源码)
  13. 【算法】O(n2)时间复杂度和O(nlogn)排序算法的简要分析
  14. 阿里无人超市 “微笑打折”成世界互联网大会热点
  15. 读List源码之Vector,ArrayList,LinkedList
  16. 3d视觉效果html,jQuery炫酷网页3D背景视觉差特效
  17. 怎么用计算机实现复数开平方,用你手中的计算器进行复数运算
  18. Asp.net 团队同时发布 WebMatrix, Razor, MVC3 和Orchard [转]
  19. 微软共同创办人保罗艾伦逝世,终年65岁
  20. 953: 单链表的删除操作的实现

热门文章

  1. android paint的抗锯齿效果
  2. Linux安装PHP(最新版)
  3. distinct mysql性能_MySQL中distinct和group by性能比较
  4. 自建一个本地dns归属地查询系统
  5. 零基础学3D建模,应该怎么开始学?你需要注意这些!
  6. 【专精特新周报】北交所首份2022年半年报出炉;创北交所最快上会记录 天马新材、华岭股份北交所过会...
  7. web前端html+css+js 简单模仿敲木鱼
  8. 联想拯救者 Y32p 显示器 评测
  9. 机器人关节模组的总结归纳
  10. js内容混淆,返回内容加密