我想使用Java代碼發送電子郵件。我使用smtp.gmail.com
發送郵件,它工作正常。現在我想在每個月的特定日期發送電子郵件,說每個月的第一天。我搜查了很多,但沒有爲我工作。在特定日期發送電子郵件
以下是我發送郵件的代碼。
public class sendMailUsingTimeInterval{
public static void main(String[] args) throws IOException{
String[] to={"[email protected]"};
String[] cc={"[email protected]"};
String subject = "hello";
String body = "Thanks , this is test.....!!";
//This is for google
sendMail("[email protected]","password","smtp.gmail.com","465","true",
"true",true,"javax.net.ssl.SSLSocketFactory","false",to,cc,
subject,body);
}
public synchronized static boolean sendMail(String userName,String passWord,String host,String port,String starttls,String auth,boolean debug,String socketFactoryClass,String fallback,String[] to,String[] cc,String subject,String text)
{
Properties props = new Properties();
//Properties props=System.getProperties();
props.put("mail.smtp.user", userName);
props.put("mail.smtp.host", host);
if(!"".equals(port))
props.put("mail.smtp.port", port);
if(!"".equals(starttls))
props.put("mail.smtp.starttls.enable",starttls);
props.put("mail.smtp.auth", auth);
if(debug){
props.put("mail.smtp.debug", "true");
}
else
{
props.put("mail.smtp.debug", "false");
}
if(!"".equals(port))
props.put("mail.smtp.socketFactory.port", port);
if(!"".equals(socketFactoryClass))
props.put("mail.smtp.socketFactory.class",socketFactoryClass);
if(!"".equals(fallback))
props.put("mail.smtp.socketFactory.fallback", fallback);
try
{
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
MimeMessage msg = new MimeMessage(session);
msg.setContent(text,"text/html");
msg.setSubject(subject);
msg.setFrom(new InternetAddress("[email protected]"));
for(int i=0;i<to.length;i++)
{
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to[i]));
}
for(int i=0;i<cc.length;i++)
{
msg.addRecipient(Message.RecipientType.CC, new InternetAddress(cc[i]));
}
msg.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, userName, passWord);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
return true;
}
catch (Exception mex)
{
mex.printStackTrace();
return false;
}
}
當這個類被調用時,代碼正在工作。如果有人能夠告訴我如何以每月1日自動發送消息的方式實現它,我將非常感激。
也許你想通過你的操作系統做調度,而不是在代碼中。 –
沒有必要在標題中添加主標籤。 –
從您的問題中不清楚您嘗試解決此問題的方法。你能解釋一下你的研究發現並分享任何實施嘗試嗎? –