代码如下:
import java.util.Properties
import javax.mail.Authenticator
import javax.mail.Message
import javax.mail.Message.RecipientType
import javax.mail.PasswordAuthentication
import javax.mail.Session
import javax.mail.Transport
import javax.mail.internet.InternetAddress
import javax.mail.internet.MimeMessage
public class EmailTest {
public static void main(String[] args) throws Exception{
Properties props = new Properties()
props.setProperty("mail.smtp.auth", "true")
props.setProperty("mail.transport.protocol", "smtp")
props.setProperty("mail.host", "smtp.163.com")
Session session = Session.getInstance(props,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication("xxx","xxx")//这里分别填写发送email的用户名、密码
}
}
)
session.setDebug(true)
Message msg = new MimeMessage(session)
msg.setFrom(new InternetAddress("xxx"))//这里是发送方的email地址如:[email protected]
msg.setSubject("test javamail")
msg.setRecipients(RecipientType.TO,
InternetAddress.parse("xxx"))//这里是接收方的email地址如:[email protected]
msg.setContent("<a href=\"http://www.google.cn\">谷歌</a>","text/htmlcharset=gb2312")
Transport.send(msg)
}
}
发送邮件时,如果模版不生效,可能是由于模版中的代码有语法错误或者不符合标准,所以导致模版不能正常工作。另外,也可能是由于网络问题,导致邮件发送失败。因此,您需要检查模版中的代码,确保其符合标准,并且检查网络连接是否正常,以确保邮件发送成功。使用httpClient可以发送,具体的可以参考下面的代码
SSLClient类,继承至HttpClient
import java.security.cert.CertificateExceptionimport java.security.cert.X509Certificate
import javax.net.ssl.SSLContext
import javax.net.ssl.TrustManager
import javax.net.ssl.X509TrustManager
import org.apache.http.conn.ClientConnectionManager
import org.apache.http.conn.scheme.Scheme
import org.apache.http.conn.scheme.SchemeRegistry
import org.apache.http.conn.ssl.SSLSocketFactory
import org.apache.http.impl.client.DefaultHttpClient
//用于进行Https请求的HttpClient
public class SSLClient extends DefaultHttpClient{
public SSLClient() throws Exception{
super()
SSLContext ctx = SSLContext.getInstance("TLS")
X509TrustManager tm = new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return null
}
}
ctx.init(null, new TrustManager[]{tm}, null)
SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)
ClientConnectionManager ccm = this.getConnectionManager()
SchemeRegistry sr = ccm.getSchemeRegistry()
sr.register(new Scheme("https", 443, ssf))
}
}
HttpClient发送post请求的类
import java.util.ArrayListimport java.util.Iterator
import java.util.List
import java.util.Map
import java.util.Map.Entry
import org.apache.http.HttpEntity
import org.apache.http.HttpResponse
import org.apache.http.NameValuePair
import org.apache.http.client.HttpClient
import org.apache.http.client.entity.UrlEncodedFormEntity
import org.apache.http.client.methods.HttpPost
import org.apache.http.message.BasicNameValuePair
import org.apache.http.util.EntityUtils
/*
* 利用HttpClient进行post请求的工具类
*/
public class HttpClientUtil {
public String doPost(String url,Map<String,String> map,String charset){
HttpClient httpClient = null
HttpPost httpPost = null
String result = null
try{
httpClient = new SSLClient()
httpPost = new HttpPost(url)
//设置参数
List<NameValuePair> list = new ArrayList<NameValuePair>()
Iterator iterator = map.entrySet().iterator()
while(iterator.hasNext()){
Entry<String,String> elem = (Entry<String, String>) iterator.next()
list.add(new BasicNameValuePair(elem.getKey(),elem.getValue()))
}
if(list.size() > 0){
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,charset)
httpPost.setEntity(entity)
}
HttpResponse response = httpClient.execute(httpPost)
if(response != null){
HttpEntity resEntity = response.getEntity()
if(resEntity != null){
result = EntityUtils.toString(resEntity,charset)
}
}
}catch(Exception ex){
ex.printStackTrace()
}
return result
}
}
测试代码
import java.util.HashMapimport java.util.Map
//对接口进行测试
public class TestMain {
private String url = "https://192.168.1.101/"
private String charset = "utf-8"
private HttpClientUtil httpClientUtil = null
public TestMain(){
httpClientUtil = new HttpClientUtil()
}
public void test(){
String httpOrgCreateTest = url + "httpOrg/create"
Map<String,String> createMap = new HashMap<String,String>()
createMap.put("authuser","*****")
createMap.put("authpass","*****")
createMap.put("orgkey","****")
createMap.put("orgname","****")
String httpOrgCreateTestRtn = httpClientUtil.doPost(httpOrgCreateTest,createMap,charset)
System.out.println("result:"+httpOrgCreateTestRtn)
}
public static void main(String[] args){
TestMain main = new TestMain()
main.test()
}
}