java邮件发送日期设置不正确
我可以在java Web应用程序中发送邮件,它工作正常,但发送日期设置不正确,例如,它是提前18小时设置的 如果我们在2015年8月27日10:00:00发送邮件,邮件会立即到达,但发送日期设置为2015年8月28日03:00:00,如下所示 下面是我的java代码java邮件发送日期设置不正确,java,email,Java,Email,我可以在java Web应用程序中发送邮件,它工作正常,但发送日期设置不正确,例如,它是提前18小时设置的 如果我们在2015年8月27日10:00:00发送邮件,邮件会立即到达,但发送日期设置为2015年8月28日03:00:00,如下所示 下面是我的java代码 public void sendMail(String subject, String body, String recipients, String cc) { try { String instructi
public void sendMail(String subject, String body, String recipients, String cc) {
try {
String instructions = "<br><br><br>This is an auto generated mail. Kindly do not reply to this mail. Any reply to this mail will not be monitored or entertained.";
Properties props = System.getProperties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtpout.secureserver.net");
props.put("mail.smtp.auth", "true");
props.setProperty("mail.user", "user");
props.setProperty("mail.password", "password");
Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(true);
body += instructions;
Transport transport = mailSession.getTransport("smtp");
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress("guruprasad.n@clss.in"));
message.setSubject(subject);
message.setContent(body, "text/html");
// SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
// Date dateInString = new Date();
// // To TimeZone Asia/Calcutta
// SimpleDateFormat sdfAsia = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
// TimeZone tzInAsia = TimeZone.getTimeZone("Asia/Calcutta");
// sdfAsia.setTimeZone(tzInAsia);
//
// String sDateInAsia = sdfAsia.format(dateInString); // Convert to String first
// Date dateInAsia = formatter.parse(sDateInAsia);
message.setSentDate(new Date());
if (recipients.indexOf(',') > 0) {
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
} else {
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
}
if (!cc.isEmpty()) {
if (cc.indexOf(',') > 0) {
message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));
} else {
message.setRecipient(Message.RecipientType.CC, new InternetAddress(cc));
}
}
MimeMultipart multipart = new MimeMultipart("related");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(body, "text/html");
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
transport.connect("smtpout.secureserver.net", "user", "password");
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
if (!cc.isEmpty()) {
transport.sendMessage(message, message.getRecipients(Message.RecipientType.CC));
}
transport.close();
} catch (Exception ex) {
// ex.printStackTrace();
}
}
public void sendMail(字符串主题、字符串正文、字符串收件人、字符串抄送){
试一试{
String instructions=“
这是一封自动生成的邮件。请勿回复此邮件。对此邮件的任何回复都不会被监视或接受。”;
Properties props=System.getProperties();
props.setProperty(“mail.transport.protocol”、“smtp”);
props.setProperty(“mail.host”、“smtpout.secureserver.net”);
props.put(“mail.smtp.auth”,“true”);
props.setProperty(“mail.user”、“user”);
props.setProperty(“mail.password”、“password”);
Session mailSession=Session.getDefaultInstance(props,null);
mailSession.setDebug(true);
正文+=指令;
传输=mailSession.getTransport(“smtp”);
mimessage message=新mimessage(mailSession);
message.setFrom(新的InternetAddress(“guruprasad”)。n@clss.in"));
message.setSubject(主题);
message.setContent(正文,“text/html”);
//SimpleDataFormat格式化程序=新的SimpleDataFormat(“dd-MM-yyyy-hh:MM:ss-a”);
//Date dateInString=新日期();
////前往亚洲时区/加尔各答
//SimpleDataFormat sdfAsia=新的SimpleDataFormat(“dd-MM-yyyy-hh:MM:ss a”);
//时区tzInAsia=时区.getTimeZone(“亚洲/加尔各答”);
//设置时区(tzInAsia);
//
//字符串sDateInAsia=sdfAsia.format(dateInString);//首先转换为字符串
//Date dateInAsia=formatter.parse(sDateInAsia);
message.setSentDate(新日期());
if(recipients.indexOf(',')>0){
message.setRecipients(message.RecipientType.TO,InternetAddress.parse(recipients));
}否则{
message.setRecipient(message.RecipientType.TO,新的InternetAddress(recipients));
}
如果(!cc.isEmpty()){
如果(cc.indexOf(',')>0){
setRecipients(message.RecipientType.CC,InternetAddress.parse(CC));
}否则{
message.setRecipient(message.RecipientType.CC,新Internet地址(CC));
}
}
MimMultipart multipart=新的MimMultipart(“相关”);
BodyPart messageBodyPart=新的MimeBodyPart();
setContent(body,“text/html”);
multipart.addBodyPart(messageBodyPart);
message.setContent(多部分);
transport.connect(“smtpout.secureserver.net”、“用户”、“密码”);
transport.sendMessage(message,message.getRecipients(message.RecipientType.TO));
如果(!cc.isEmpty()){
transport.sendMessage(message,message.getRecipients(message.RecipientType.CC));
}
transport.close();
}捕获(例外情况除外){
//例如printStackTrace();
}
}
我也可以使用亚洲时区,但它不工作,请帮助我
谢谢问题很可能出在您的邮件服务器时区上 smtpout.secureserver.net
您已按本地时区设置了SendDate,但您的服务器可能位于另一个时区,并且它会重置/修改时间(假设正在更正时间)。请参阅此相关信息,原因/解决方法是否相同?发送方和接收方位于不同的时区?您应该在不设置任何dateTest的情况下使用不同的主机服务器进行一次尝试。