導航:首頁 > 編程語言 > 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相關的資料

熱點內容
蘋果12原裝數據線怎麼感覺有點硬 瀏覽:764
js獲取div中的圖片不顯示不出來 瀏覽:291
什麼網站有首映動漫 瀏覽:461
淘寶網路電話叫什麼 瀏覽:231
編程要讀哪些書 瀏覽:134
如何在手機上新建文件夾里添文件 瀏覽:292
先鋒w10刷安卓系統 瀏覽:787
java設置過期日期 瀏覽:114
新版本抖音怎麼看我的數據比例 瀏覽:946
什麼是3G網路3G的發展史 瀏覽:269
如何使用ps把圖片的文件大小弄小 瀏覽:880
安卓系統根目錄文件夾 瀏覽:900
手錶怎麼設置蜂窩網路 瀏覽:51
舊愛勾搭app還有嗎 瀏覽:141
日外語言編程軟體哪個好 瀏覽:950
小論文發表了但是數據錯誤怎麼辦 瀏覽:952
注冊表禁止啟動程序運行 瀏覽:705
網路優化總體流程圖 瀏覽:735
前端程序員簡歷模板 瀏覽:706
蜂巢積木編程機器人怎麼樣 瀏覽:561

友情鏈接