導航:首頁 > 編程語言 > javamailsession

javamailsession

發布時間:2023-06-18 21:48:09

javamail接收郵件報錯

出現這個問題,說明驗證失敗,對於QQ來說,properties的設置,要多寫一個SSl認證,QQ郵件是用了SSl加密了,不驗證,就會出現這樣的報錯提示

㈡ javamail怎麼設置代理發送郵件

public static void main(String[] args) throws Exception {
MailTest test = new MailTest();
//通過代理發送郵件
test.sendMailByProxy();
}
private void sendMailByProxy()throws Exception{
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
// final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//設置代理伺服器
Properties props = System.getProperties();
props.setProperty("proxySet", "true");
props.setProperty("socksProxyHost", "192.168.1.1");
props.setProperty("socksProxyPort", "1080");
props.setProperty("mail.smtp.host", "smtp.163.com");

//props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "25");
props.setProperty("mail.smtp.socketFactory.port", "25");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.store.protocol", "pop3");
props.put("mail.transport.protocol", "smtp");
final String username = "用戶名";
final String password = "密碼";

//使用驗證
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,
password);
}
});
MimeMessage message = new MimeMessage(session);
Address address = new InternetAddress("[email protected]");
Address toAaddress = new InternetAddress("[email protected]");

message.setFrom(address);
message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);
message.setSubject("測試");
message.setText("test");
message.setSentDate(new Date());
Transport.send(message);
System.out.println("郵件發送!");
}

㈢ javaMail中session的getDefaultInstance和getInstance的區別

<span style="color: #3366ff;">從處理流程中可以看出,首先是從緩存中查找是否有properties存在
如果存在,則載入默認的properties
如果不存在才載入用戶自己定義的properties,
所以當一個應用為每個用戶獨立創建properties的時候,還是應該調用getInstance,
除非你希望有一個默認的properties讓用戶使用</span></p><p>問題找到了,因為它會首先去內存和系統文件中去找properties,所以不管我在頁面改幾次數據,其實在後台中生成session時都和系統啟動時的一樣,所以在MailUtil.sendTextMessage(mailSession,RptTaskMailConfig.Sender,
receiver,null,mail_subject,mail_content,"GB2312",null);時session里的sender和傳入的sender不一致,因此出錯,修改<span style="color: #0000ff;">Session.getDefaultInstance(props, authentic);<span style="color: #000000;">為</span>Session.getInstance(props, authentic);後,</span><span style="color: #000000;">可以正確發送修改帳號,密碼等資料後的郵件.OK</span></p><p>最後再補充一下,session.getdefaultinstance和getinstance的區別 :</p><p><span style="color: #3366ff;">如果想要同時使用兩個帳號發送javamail,比如使用</span><a href="mailto:[email protected]"><span style="color: #3366ff;">[email protected]</span></a><span style="color: #3366ff;">發送1#郵件,使用</span><a href="mailto:[email protected]"><span style="color: #3366ff;">[email protected]</span></a><span style="color: #3366ff;">發送2#郵件,這時候,你就需要同時創建兩個java.mail.Session對象。但是如果你仍然使用Session.getDefaultInstance創建session對象的話,你會發現,第二個username:</span><a href="mailto:[email protected]"><span style="color: #3366ff;">[email protected]</span></a><span style="color: #3366ff;">創建的session永遠都和第一個一樣,這是為什麼呢?因為,getDefaultInstance是真正單例模式,而且,裡面的username和password屬性是final型的,無法更改。所以,你會發現兩封email都是由</span><a href="mailto:[email protected]"><span style="color: #3366ff;">[email protected]</span></a><span style="color: #3366ff;">發出來的。所以這個時候你要使用javax.mail.Session.getInstance()方法來創建session對象。</span></p><p><span style="color: #3366ff;">

㈣ javamail或郵件伺服器配置

收郵件要涉及到伺服器的授權,不然任何人都可以收你的郵件了。
所以你要實現一個授權的類,然後產生一個對象放到Session session = Session.getDefaultInstance(props, null)中你設置為null的地方。比如:
public class CheckPword
extends Authenticator
String username
String userpword

public CheckPword
public CheckPword(String name String pword)
username = name
userpword = pword

protected PasswordAuthentication getPasswordAuthentication
/@todo Override this javax.mail.Authenticator method/
return new PasswordAuthentication(username, userpword)

調用:
Session session = Session.getDefaultInstance(props,
new CheckPword(user pword))

其實可以不用授權類,直接用用戶名和密碼連的,具體的問題,我現在上班沒時間看,哈哈,不好意思

謝謝大家,我現在的問題是,我怎麼連上接收信件的伺服器,我寫pop.126.com這個不好用,它總說連接不上。我不知道為[離線表情]大家有時間幫我看看吧,我做完發信了,但收信就做不出來了

剛才看了下126的幫助,是這個地址啊
接收郵件伺服器: POP.126.com
發送郵件伺服器: SMTP.126.com

閱讀全文

與javamailsession相關的資料

熱點內容
怎麼開通移動4g網路 瀏覽:130
岳陽微信公司 瀏覽:96
win10如何從備份中恢復出廠設置密碼 瀏覽:659
什麼軟體修改wifi密碼錯誤 瀏覽:582
遇見不安全網站怎麼辦 瀏覽:251
哪個app有慶余年電視劇 瀏覽:420
iphone5s視頻時很黑 瀏覽:601
js獲取埠號 瀏覽:347
手機短息發的鏈接病毒蘋果手機 瀏覽:724
win10專業忘記家庭組密碼 瀏覽:176
南寧applestore幾樓 瀏覽:296
java字元串怎麼初始化 瀏覽:349
醫美哪個app好 瀏覽:768
代碼編程和機器人編程哪個好 瀏覽:875
90版本男法 瀏覽:796
win10桌面字體難看 瀏覽:848
三菱fx5u支持哪些編程 瀏覽:7
優酷在文件夾在哪裡 瀏覽:91
趣列印的數據文件是什麼 瀏覽:871
linuxjava程序 瀏覽:483

友情鏈接