用Java寫發(fā)送郵件的程序,經(jīng)常被當(dāng)做垃圾郵件處理怎么解決
問題描述
sendMail(String receiver,String content){ Properties properties=new Properties(); properties.setProperty('mail.smtp.auth','true'); properties.setProperty('mail.transport.protocol','smtp'); properties.setProperty('mail.host','smtp.163.com'); Session session =Session.getInstance(properties,new Authenticator(){ protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication('*********163.com','*******'); } } ); Message message=new MimeMessage(session);try { message.setFrom(new InternetAddress('*********”@163.com')); } catch (AddressException e) { return '郵箱的登錄失敗,請檢查你的賬戶密碼是否正確!'; } catch (MessagingException e) { return '你的賬戶異常,請重新發(fā)送!'; }try { message.addRecipients(RecipientType.TO,InternetAddress.parse(receiver)); message.setSubject('MachineEye'); message.setText(content); } catch (AddressException e1) { return '收件人賬戶信息不正確!'; } catch (MessagingException e1) { return '收件人賬戶異常!'; } try { Transport.send(message); } catch (MessagingException e) { return '郵件發(fā)送失敗'; }return '發(fā)送成功!';}
問題解答
回答1:....不管你用什么語言寫,你郵箱本身的合法性,權(quán)威性, 不被認(rèn)可,你的內(nèi)容稍稍不對,或者被人舉報,就很容易進(jìn)入垃圾郵箱。
回答2:首先,跟語言沒有關(guān)系。
1..要聲明郵件地址和頭信息(msg.Headers.Add('X-Mailer', 'Microsoft Outlook Express 6.00.2900.2869'); 披上outlook的馬甲)
3.特殊情況,就是可能有些服務(wù)器在你已經(jīng)披上合法的馬甲后還是會當(dāng)作垃圾郵箱處理,如網(wǎng)易,那是因?yàn)槟愕泥]件內(nèi)容可能存在一些,敏感的字眼,或者違法的信息導(dǎo)致的。
回答3:看phpmailer我記得要設(shè)置一些東西,好像是啥SASL驗(yàn)證機(jī)制,其他就不清楚了
