我正在使用javamail作为邮件客户端应用程序。我添加了一个带有SMTP TLS的iCloud帐户用于传出,而imap用于传入
acct.iIncomingHostType = Constants.HOSTTYPE_IMAP;
acct.sIncomingHost = "imap.mail.me.com";
acct.sIncomingHostPort = "993";
acct.iIncomingHostEncryption = Constants.ENCRYPT_SSL;
acct.sOutgoingHost = "smtp.mail.me.com";
acct.sOutgoingHostPort = "587";
acct.iOutgoingHostEncryption = Constants.ENCRYPT_TLS;
acct.bOutgoingHostSPALogin = false;
现在,当我发送邮件时,它已到达收件人邮箱 - 无论是gmail还是Outlook等,但发送的邮件不会出现在我的iCloud帐户的已发送文件夹中。
代码如下所示
Properties props = new Properties();
/// sProtocol is "smtp"
props.setProperty("mail.debug", "true");
props.setProperty("mail.transport.protocol", sProtocol);
props.setProperty("mail.host", acct.sOutgoingHost);
props.setProperty("mail." + sProtocol + ".port",
acct.sOutgoingHostPort);
props.setProperty("mail." + sProtocol + ".socketFactory.port",
acct.sOutgoingHostPort);
props.setProperty("mail." + sProtocol + ".timeout", "30000");
props.setProperty("mail." + sProtocol + ".connectiontimeout",
"30000");
props.setProperty("mail." + sProtocol + ".auth", "true");
props.setProperty("mail.debug.auth", "true");
props.setProperty("mail." + sProtocol + ".sasl.enable", "true");
props.setProperty("mail." + sProtocol + ".starttls.enable",
"true");
props.setProperty("mail." + sProtocol + ".ssl.trust", "*");
props.setProperty("mail." + sProtocol
+ ".ssl.socketFactory.class",
"com.isaacdanielgroup.sempostmark.SEMPSSLSocketFactory");
props.setProperty("mail." + sProtocol
+ ".ssl.socketFactory.fallback", "false");
答案 0 :(得分:1)
首先,您可以通过getting rid of all the socket factory stuff简化程序。
没有任何魔法可以将已发送的邮件添加到“已发送”文件夹中。如果你想要那里的邮件副本,你需要自己把它放在那里。有关示例,请参阅msgsend.java sample program。