java gmail 发送邮件_Java通过Gmail发送电子邮件
大家好,我刚刚尝试获取一些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发送电子邮件相关推荐
- java ssl发送邮件_通过SSL发送的Java邮件
java ssl发送邮件 抽象 本博客的目的是演示如何使用Java Mail通过具有SSL连接的SMTP服务器发送电子邮件. 免责声明 这篇文章仅供参考. 在使用所提供的任何信息之前,请认真思考. 从 ...
- 发送邮件 ajax,使用Ajax发送电子邮件
我正在使用以下内容通过ajax发送电子邮件.它没有发送name. var submitForm = function(){ var name = jQuery('[name=name]').val() ...
- php使用gmail发送邮件,PHP使用gmail发邮件
实验室要举办一个会议,要我做一个会议的网站.使用了开源的openconf,十分省事.但发邮件简单的使用了PHP的mail函数,没有经过SMTP认证,发送的邮件很可能出现在对方的垃圾箱里,甚至会被退信. ...
- 发送邮件_使用 Python 发送电子邮件
在实际运用中,我们可能需要通过电子邮件告诉我们 Python 运行的结果的是否与预期的一致.现在我们就来看一下,怎么通过 Python 发送邮件. 这个示例中我们需要用到的第三方库有: •smtpli ...
- ews java 新建邮箱_通过EWS发送电子邮件时使用自定义显示名称
我正在使用 EWS (Exchange Web Services) 与 Exchange 2010 在我们的组织内部生成和发送电子邮件 . 我们目前有一个邮箱/用户,我们所有的应用程序都通过这个邮箱/ ...
- java 批量发送邮件_java – 提高通过spring-mail发送批量电子邮件的性能
我有一个独立于spring-stand的应用程序,它使用如下的简单弹簧电子邮件代码,to和消息是使用从map迭代的值构造的. 我已经对here问题提出了一些建议,但我需要一些具体的建议.下面是我的代码 ...
- java 延时发送邮件_java编程实现邮件定时发送的方法
本文实例讲述了java编程实现邮件定时发送的方法.分享给大家供大家参考,具体如下: 最近做项目时客户提出了一个需求:系统定时发送E-mail到其客户,达到通知的效果.先将实例分享给大家,如果确实有一些 ...
- java 邮件 附件_java中javamail发送带附件的邮件实现方法
本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理em ...
- java connection 共享_java 使用HttpURLConnection发送数据简单实例
java 使用HttpURLConnection发送数据简单实例 每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求 ...
最新文章
- 某学校学生在计算机等级水平测试中,提高中职学校计算机等级考试(一级)通过率的教学策略研究...
- 深入理解SELinux SEAndroid
- 1.16 快速排序法(Quicksort)
- 送出orkut邀请,当然如果需要gmail邀请,还有很多
- .netcore 分布式事务CAP2.6 快速入门
- 计算机课实验三,成都信息工程学院计算机网络课程实验三
- php mysql 拼音首字母,Mysql应用MySQL查询汉字的拼音首字母实例教程
- 巧用 | 低成本高可用,巧用Redis
- ucc编译器(中间代码生成)
- ASP.Net Jquery 随机验证码 文本框判断
- IIS 6.0 SSL证书安装
- 全栈开发实战(二)——简易博客社区前端搭建教程(附源码)
- 【算法】O(n2)时间复杂度和O(nlogn)排序算法的简要分析
- 阿里无人超市 “微笑打折”成世界互联网大会热点
- 读List源码之Vector,ArrayList,LinkedList
- 3d视觉效果html,jQuery炫酷网页3D背景视觉差特效
- 怎么用计算机实现复数开平方,用你手中的计算器进行复数运算
- Asp.net 团队同时发布 WebMatrix, Razor, MVC3 和Orchard [转]
- 微软共同创办人保罗艾伦逝世,终年65岁
- 953: 单链表的删除操作的实现