java中实现发送邮件 session.getTransport() 为什么是null? 160C

代码内容:
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.qq.com");
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true");
//使用JavaMail发送邮件的5个步骤
//1、创建session
Session session = Session.getInstance(prop);
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();-----------》这一步报空指针

    控制台报错信息:
 javax.mail.NoSuchProviderException: java.lang.NullPointerException
 at javax.mail.Session.getTransport(Session.java:298)

7个回答

Session session = Session.getDefaultInstance(prop); 试试

weixin_42464028
weixin_42464028 没用
11 个月之前 回复

读属性文件
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("/IcisReport.properties");
prop.load(in);
Set keyValue = prop.keySet();
for (Iterator it = keyValue.iterator(); it.hasNext();)
{
String key = (String) it.next();
}

不太知道哪里错了,好像是properties参数设置得不对

public void send(String from, String to, String password, String subject, String content, boolean debug) throws Exception{
    Properties properties = new Properties();
    if(debug){
        properties.setProperty("mail.debug", "true");
    }

    properties.setProperty("mail.smtp.auth", "true");
    properties.setProperty("mail.transport.protocol", "smtp");
    properties.setProperty("mail.smtp.host", "smtp.qq.com");
    properties.put("mail.smtp.ssl.enable", true);

    MailSSLSocketFactory mailSSLSocketFactory = new MailSSLSocketFactory();
    mailSSLSocketFactory.setTrustAllHosts(true);
    properties.put("mail.smtp.ssl.socketFactory", mailSSLSocketFactory);

    Session session = Session.getInstance(properties);

    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
    message.setSubject(subject);
    message.setText(content);

    Transport transport = session.getTransport();
    transport.connect(from, password);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
}

smtp.qq.com 您用的 是QQ 的邮箱吧 。这个是需要您到自己发送方的邮箱开通POP3/SMTP服务 获取独立的密码(不是QQ密码)并且设置到发送对象中,这一步您做了吗?

我这里有完整的代码 , 可以带邮件的,只发送文字的都有 ,需要的话可以给您

qq_41182955
让-思念沉默 你好,可以给我发一份码吗?谢谢! 邮箱:a1114651313@qq.com
11 个月之前 回复

你的session中没有设置账号和密码 也有可能你的mail.smtp.port没有设置

#邮件发送协议
mail.transport.protocol=smtp
#SMTP邮件服务器
mail.smtp.host=smtp.office365.com
#SMTP邮件服务器默认端口
mail.smtp.port=587
#是否要求身份认证
mail.smtp.auth=true

    // 创建邮件session
    Session session = Session.getDefaultInstance(props, new Authenticator() {

        @Override
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(userName, password);
        }

    });

你JDK什么版本?

qq_40122213
qq_40122213 0.0~~~
11 个月之前 回复

已经解决了是 jar包冲突导致的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
为什么 cusor 是 null?
我使用下面的代码来获取图像路径。并且保存到字符串数组路径中。rnrn String[] projection = MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA, MediaStore.Images.ImageColumns.DATA; rn Cursor cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.Media._ID); rn int count = cursor.getCount();rn int image_column_index = cursor.getColumnIndex(MediaStore.Images.Media._ID); rn int image_path_index = cursor.getColumnIndex(MediaStore.Images.Media.DATA);rn int i;rn for(i = 0; i < count; i++) rn cursor.moveToPosition(i);rn int id = cursor.getInt(image_column_index);rn pat[i[ = cursor.getString(image_path_index);rn rnrn然后我用下面的代码来获取缩略图。rnrn int i;rn for(i = 0; i < count; i++) rn String[] projection = MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA; rn Cursor cursor = act.managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, MediaStore.Images.Media.DATA + "=?", new String[] path[i], MediaStore.Images.Media._ID); rnrn但是当文件数量很大时(差不多1000个文件),cursor就显示null。我确信它不是由路径名称导致的错误,那么是什么原因导致的?
为什么是null
我有这样的一个JSP文件:rnString xuhao=request.getParameter("mycheck");rnout.println(xuhao);rnmycheck是复选框的name。rn为什么得到的null,我怎样才能得到复选框的value值呢?
为什么输出是null???
import javax.servlet.*;rnimport javax.servlet.http.*;rnimport java.io.*;rnimport java.util.*;rnrnpublic class HelloServlet4 extends HttpServletrnrn public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOExceptionrn rn response.setContentType("text/html;charset=gb2312");rn PrintWriter out=response.getWriter();rn ServletContext sc=getServletContext();rn String un=getInitParameter("usename");rn out.println(un);rn out.close();rn rn rn public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOExceptionrn rn doGet(request,response);rn rn rn我在xml文件写入rn rn uesnamern maryrn rn为什么出现nullrn请指教~
为什么输出是null
package Externalizable;rnrnimport java.io.Externalizable;rnimport java.io.IOException;rnimport java.io.ObjectInput;rnimport java.io.ObjectOutput;rnrnpublic class Person implements Externalizable rnrn private String name;rn private int age; rn public Person()rn rn rnrn public Person(String name, int age)rn this.name = name;rn this.age = age;rn rn rn public String toString()rn return "姓名: " +this.name + " 年龄" + this.age;rn rn //只写或读 下面的东西rn public void writeExternal(ObjectOutput out) throws IOException rn out.writeObject(this.name);rn out.writeObject(age); rn rn public void readExternal(ObjectInput in) throws IOException,rn ClassNotFoundException rn this.name = (String)in.readObject();rn this.age = in.readInt();rn rnrn-----------------------------------------------------------------------------------rnpackage Externalizable;rnrnimport java.io.File;rnimport java.io.FileInputStream;rnimport java.io.FileNotFoundException;rnimport java.io.FileOutputStream;rnimport java.io.IOException;rnimport java.io.InputStream;rnimport java.io.ObjectInputStream;rnimport java.io.ObjectOutputStream;rnimport java.io.OutputStream;rnrnimport Transirnt.Person;rnrnpublic class Externalizabletest rnrn public static void main(String[] args) rnrn ser();rn dser();rn rn rnrn private static void ser() rn rn File f = new File("e:/" + File.separator + "tes.txt");rn try rn ObjectOutputStream oos = null;rn OutputStream out = new FileOutputStream(f);rn oos = new ObjectOutputStream(out);rn oos.writeObject(new Person("lkkj", 12));rn// System.out.println();rn oos.close();rn catch (FileNotFoundException e) rn e.printStackTrace();rn catch (IOException e) rn e.printStackTrace();rn rn rn rnrn private static void dser() rn try rn File f = new File("e:/" + File.separator + "tes.txt");rn ObjectInputStream ois = null;rn InputStream input = new FileInputStream(f);rn ois = new ObjectInputStream(input);rn Object obj = ois.readObject();rn ois.close();rn System.out.println(obj);rn catch (IOException e) rn e.printStackTrace();rn catch (ClassNotFoundException e) rn e.printStackTrace();rn rn rn rnrn求大神帮助。。。[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/16.gif][/img]
xmlRoot为什么是null
var colAttrXml = document.getElementById("fbt_global_currentAttributesXml").value;rn var editor = FTB_API[ftb_global_editor].designEditor;rn var obj = editor.document.getElementById(ctlID);rn if (obj != null) rn var xmlDoc = new ActiveXObject('MSXML2.DOMDocument');rn xmlDoc.async = false;rn xmlDoc.loadXML(colAttrXml);rn [color=#FF6600]var xmlRoot = xmlDoc.documentElement;[/color]rnrn var attrList = xmlRoot.getElementsByTagName("UpdateAttributes").item(0);rnrn我单步调式:rncolAttrXml的值是:orderTheme1Text
为什么输出的是null
[code=Java]rnpublic class StringTest rnrn /**rn * @param argsrn *rn */rn public static void main(String[] args) rnrn String[] flag=null;rn rn rn reFormat(flag);rn rn System.out.println(flag);//为什么输出来的还是null?rn rn rn rn rn private static void reFormat(String[] flag)rn String[] flags ="1","2","3";rn flag=flags;rn rnrnrn[/code]
为什么是null?
第一页RequestPage.jsp rnrn<%response.sendRedirect("ShowRequest.jsp");%>rnrn第二页ShowRequest.jsp rn<%out.println(request.getHeader("referer")rn);%>rnrn从第一页开始执行,执行结果显示为nullrn请指教
为什么CurrentRow是null?
我用DataGridView来显示数据,绑定数据后,用代码dgv.Row[0].Selected = true;设置了第一行被选中。rnrn显示出来也确实是被选中了,行背景色为选中颜色。rnrn但此时如果我不去点一下第一条记录,dgv.CurrentRow永远是null,除非去手动点一下,这个值才不是null,这是为什么?rnrn难道行选择属性设置了没起作用?那还有什么意义?rnrnCurrentRow是只读属性,没法给赋值,要不我自己加一行代码也行。rnrn这是不是个Bug,为什么这么设计?
null对象打印为什么是null?
JAVA中有八种基本数据类型,他们在初始化的时候会被赋予初始值。 byte -&amp;gt; 0 short -&amp;gt; 0 int -&amp;gt; 0 long -&amp;gt; 0 char -&amp;gt; &quot; &quot;(看起来像是一个空格) float -&amp;gt; 0.0 double -&amp;gt; 0.0 boolean -&amp;gt; false 引用类型对象初始化会被赋予初始值:null String ...
为什么 request.getParameterValues() 获得的是null
我 里面套用了rn我用post方式提交的rn而request.getParameter();可以取得值 隐藏表单域的值rn而request.getParameterValues() 取得一组相同name的checkbox的值的是nullrn隐藏表单域 和 checkbox 是放在外面的里面的
为什么值是NULL呢?
DropDownList ddlType;rnrnfor (int i = 0; i <= girdview.Rows.Count - 1; i++)rnrn if (Convert.ToString(ds.Tables[0].Rows[0]["type"]).Trim() == "真实")rn rn ddlType = (DropDownList)girdview.Rows[0].FindControl("ddlType");rn ddlType.SelectedIndex = 0;rn rnrnrnddlType = (DropDownList)girdview.Rows[0].FindControl("ddlType");rnrn的值为null,然后直接跳到到catch,但是前台操作没有问题,显示也没有问题,只是跟踪的时候会发现这里为空然后跳出
为什么输出是"空"(null)
编写一个输出本地IP的方法,源码入下:rnimport java.net.*;rnrnpublic class TestIPrnrn public static void main(String args[])rn rn InetAddress ia = null;rn String s = null;rn rn tryrn rn s = ia.getHostAddress();rn rn catch(Exception e)rn rn rn rn System.out.println(s);rn rnrnrn可输出结果是null.为什么?
为什么是无效使用 Null?
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)rnrnFor i = 0 To cxxz.Recordset.Fields.Count - 1rn lm_zd = cxxz.Recordset.Fields(4)rn zz.Text = cxxz.Recordset.Fields(5)rn qkh.Text = cxxz.Recordset.Fields(6)rn filepath.Text = cxxz.Recordset.Fields(7) '实时错误‘94’:无效使用 Null?rn nr.Text = cxxz.Recordset.Fields(8)rnNext
怎么返回值?为什么是NULL?
把某列当字符串相加rnCREATE PROCEDURE [p_try] AS rndeclare @sql varchar(8000)rn select @sql=@sql+ltrim(str(id) ) +',' from treern select a=@sqlrnGOrnrnuse tempdbrngornexec p_tryrnrn结果rnarnNULLrnrn
?号传值!为什么是null
rn rn rn rn rnrn另一个jsp中rnrn <%=request.getParameter("AAA") %>rnrn结果为rnnullrn
list.get(0)为什么是null的?
List list = (List)this.getHibernateTemplate().find("from User u where u.userName=?",user.getUserName());rnrn System.out.println(list != null);rn System.out.println(list.size() > 0);rn System.out.println(list.get(0));rnrn结果是System.out.println(list != null); 结果是true;rn System.out.println(list.size() > 0); 结果是1rn System.out.println(list.get(0)); 结果是nullrn rnrn请问一下,为什么 (list != null)是ture,(list.size() > 0是1)但是 list.get(0)取出来却是null的?
为什么getparameter取得的是null
我在一个jsp中收件人: rn     rn     rn      寄信人: rn     rn然后在下一个jsp中希望得到这些值,可是rnString to= request.getParameter("to");rn out.println(to);rn String from=request.getParameter("from");rn out.println(from);rn得到的都是null,应该可以的啊?
java实现email发送邮件
java发送emai,可支持html和txt,可以直接调用
java实现发送邮件jar文件
使用javamail实现邮件发送的jar包。
Java实现发送邮件
java实现邮件发送,内有详细的注释,步骤详细,想要实现发送邮件的可以看一看。
java实现发送邮件
package mail; import java.io.Serializable; /** * 邮件实体类 */ public class Mail implements Serializable { /** * 序列号 */ private static final long serialVersionUI...
java实现发送邮件功能
package util; import java.io.InputStream; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.BodyPart; imp...
为什么这个node是null?
写了一个js函数,遍历当前页面,并给页面中的所有元素增加onmouseover listener,然后希望能在鼠标指向它的时候,弹出个窗口告诉我这个元素的tag,但是node(红色)不知道为什么是Null,求助啊!rnrn[code=JScript]rn run : function () rnrn var iterator = document.createNodeIterator(content.document, NodeFilter.SHOW_ELEMENT, null, false);rn var node1 = iterator.nextNode();rn if (node1 != null) rn node1.addEventListener('mouseover', function () add(node1), false);rn rnrn while (node1) rn node1 = iterator.nextNode();rn if (node1 != null) rn node1.addEventListener('mouseover', function () add(node1), false);rn rn rn rn function add(node) [color=#FF0000]这里为什么node是null啊,换成node1也不行[/color]rn alert(node.tagName + " has been moved over");rn rnrn[/code]
为什么getInputForward是null值?
我在Action中捕获异常后用:rnreturn mapping.getInputForward();rn结果这是个null值,不解中,跟struts-config.xml配置有关吗?rn我的Action方法是从别的页面forward过来的,肯定不是第一个页面
js getelementbyid 为什么是null
这部分给span标签动态的设Id值rn[code=java]//////////rnrn rn rn rn $blog.titlern rn $blog.uname rn //这里获取id是reply1rn [/code]rn下面是js中的方法里按id取标签,可是报错是can not read propery of null,求教,为什么呢?()rn[code=java]function getReplies(o)rn Service.getReply(o,rn callback:function(data)rn alert(data);//有返回值,0rn var idIs="reply"+o;//取出idIs结果是reply1rn var span=document.getElementById(idIs);rn alert(span.nodeName);rn span.innerHTML=data; rn ,rn errHandler:function(msg)alert(msg),rn timeout:3000rn );rn [/code]
为什么xmlHttp.responseXML.documentElement的值是null????
我用xmlHttp.responseText接收数据能用alert打印出正确的xml文件内容,rnxmlHttp.responseXML方法得到的也是一个objectrn可是xmlHttp.responseXML.documentElement的值就是null,请问这是怎么回事呢?该怎样解决?谢谢!rndata.xmlrnrnrn测试数据!rn
导航属性为null是为什么
在linq to entity中rn有类User和Dept,User中有导航性属性Dept,用rnList users= db.Users.ToList();rn取数据,集合中的User对象中的Dept导航属性为null,rn无法取值,这是为什么?不是能自动取值吗?
为什么request.getAttribute得到的是null
一个登陆页面login.jsp,rn一个框架主页面main.jsp,rn包括三个页面(topframe.jsp,leftframe.jsp,rightframe.jsp),rn我在登陆页面的action里request.setAttribute("DeptOprt", "系统管理员");rn然后在main.jsp里<%=(String)request.getAttribute("DeptOprt")%>可以取到正确的值,但在topframe.jsp里却取不到值,请问高手怎么解决啊,急,在线等待,解决马上给分
GetSafeHwnd返回null是为什么?
我在mod窗口中创建了一个Cwnd对象,然后要用GetSafeHwnd返回一个hwnd,第一次是没有问题的,第二次再进去的时候就出错了,好像返回了NULL,应该是什么原因,该怎么解决?
为什么得到的是null呢?
源文件如下rn///// 1.htmlrnrn rn rn what's your name?rn rn rn rn rn////////////////////2.jsprn<%rnString name=request.getParameter("username");rnsession.setAttribute("thename",name);rn%>rnrn rn continuern rnrn///////////////////////3.jsprnrn rn hello,<%=session.getAttribute("thename")%>rn rnrnrn
JAVA实现发送邮件源代码
实现封装了JAVA发送邮件,简化了邮件开发,文件是源码可以直接导入到开发工具中,进行相应的修改发布,修改简单,发布轻松,可以轻松运用到你的项目中
Java下实现qq邮箱发送邮件
(希望你不要给我邮箱发了) Java下实现qq邮箱发送邮件 1.先进入qq邮箱点击设置——&gt;账户——&gt;开启以下服务:(在开启SMTP服务时会获取到一个授权码) 开启服务: POP3/SMTP服务 IMAP/SMTP服务 2.敲代码 3.导入相关包 public class SendEamil { //邮件...
java 发送邮件发送邮件发送邮件
通过java 发送邮件
Java 实现邮箱发送邮件
这是一个实现注册时候邮箱验证的方法调用的是163邮箱的邮件服务器
javax.mail java 发送邮件的实现
下面有完整可以运行的代码。本人亲自测试,可以运行。附件有所用到的jar包和源码。需要的朋友可以直接下载进行测试和研究,本人也是在网上找到的代码。一起分享下 直接上源码 [size=large][color=red]1. 邮件的基本信息(方便就直接设置为静态了)[/color][/size] 下面最好是做为一个javabean [code=&quot;java&quot;] package com.lgf.E...
java免费发送邮件实现
现在项目上线一段时间了,希望能够在项目中出现异常后邮件通知给相关开发人员。我从网上找了大量的第三方接口(需要花钱)和发送邮件demo。最后选择了一个只需要引入一个jar包和一个工具类的实现,不需要配置文件,具体的工具类代码如下:package com.evan.mail; import java.util.Date; import java.util.Properties;import javax.
java实现了发送邮件功能
java实现了发送邮件功能,java实现了发送邮件功能java实现了发送邮件功能,java实现了发送邮件功能
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符