用Java寫發送郵件的程序,經常被當做垃圾郵件處理怎么解決
問題描述
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 '你的賬戶異常,請重新發送!'; }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 '郵件發送失敗'; }return '發送成功!';}
問題解答
回答1:....不管你用什么語言寫,你郵箱本身的合法性,權威性, 不被認可,你的內容稍稍不對,或者被人舉報,就很容易進入垃圾郵箱。
回答2:首先,跟語言沒有關系。
1..要聲明郵件地址和頭信息(msg.Headers.Add('X-Mailer', 'Microsoft Outlook Express 6.00.2900.2869'); 披上outlook的馬甲)
3.特殊情況,就是可能有些服務器在你已經披上合法的馬甲后還是會當作垃圾郵箱處理,如網易,那是因為你的郵件內容可能存在一些,敏感的字眼,或者違法的信息導致的。
回答3:看phpmailer我記得要設置一些東西,好像是啥SASL驗證機制,其他就不清楚了
