Implement davmail.smtpSaveInSent option and reorganize tabs
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1706 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
63fdfb111c
commit
4ef3725409
|
@ -154,6 +154,7 @@ public final class Settings {
|
||||||
SETTINGS.put("davmail.forceActiveSyncUpdate", Boolean.FALSE.toString());
|
SETTINGS.put("davmail.forceActiveSyncUpdate", Boolean.FALSE.toString());
|
||||||
SETTINGS.put("davmail.showStartupBanner", Boolean.TRUE.toString());
|
SETTINGS.put("davmail.showStartupBanner", Boolean.TRUE.toString());
|
||||||
SETTINGS.put("davmail.imapAutoExpunge", Boolean.TRUE.toString());
|
SETTINGS.put("davmail.imapAutoExpunge", Boolean.TRUE.toString());
|
||||||
|
SETTINGS.put("davmail.smtpSaveInSent", Boolean.TRUE.toString());
|
||||||
SETTINGS.put("davmail.ssl.keystoreType", "");
|
SETTINGS.put("davmail.ssl.keystoreType", "");
|
||||||
SETTINGS.put("davmail.ssl.keystoreFile", "");
|
SETTINGS.put("davmail.ssl.keystoreFile", "");
|
||||||
SETTINGS.put("davmail.ssl.keystorePass", "");
|
SETTINGS.put("davmail.ssl.keystorePass", "");
|
||||||
|
|
|
@ -1706,6 +1706,10 @@ public class DavExchangeSession extends ExchangeSession {
|
||||||
public void moveItem(String sourcePath, String targetPath) throws IOException {
|
public void moveItem(String sourcePath, String targetPath) throws IOException {
|
||||||
MoveMethod method = new MoveMethod(URIUtil.encodePath(getFolderPath(sourcePath)),
|
MoveMethod method = new MoveMethod(URIUtil.encodePath(getFolderPath(sourcePath)),
|
||||||
URIUtil.encodePath(getFolderPath(targetPath)), false);
|
URIUtil.encodePath(getFolderPath(targetPath)), false);
|
||||||
|
moveItem(method);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void moveItem(MoveMethod method) throws IOException {
|
||||||
try {
|
try {
|
||||||
int statusCode = httpClient.executeMethod(method);
|
int statusCode = httpClient.executeMethod(method);
|
||||||
if (statusCode == HttpStatus.SC_PRECONDITION_FAILED) {
|
if (statusCode == HttpStatus.SC_PRECONDITION_FAILED) {
|
||||||
|
@ -2419,7 +2423,13 @@ public class DavExchangeSession extends ExchangeSession {
|
||||||
properties.put("messageFormat", "2");
|
properties.put("messageFormat", "2");
|
||||||
}
|
}
|
||||||
createMessage(DRAFTS, itemName, properties, mimeMessage);
|
createMessage(DRAFTS, itemName, properties, mimeMessage);
|
||||||
moveItem(DRAFTS + '/' + itemName, SENDMSG);
|
MoveMethod method = new MoveMethod(URIUtil.encodePath(getFolderPath(DRAFTS + '/' + itemName)),
|
||||||
|
URIUtil.encodePath(getFolderPath(SENDMSG)), false);
|
||||||
|
// set header if saveInSent is disabled
|
||||||
|
if (!Settings.getBooleanProperty("davmail.smtpSaveInSent", true)) {
|
||||||
|
method.setRequestHeader("Saveinsent", "f");
|
||||||
|
}
|
||||||
|
moveItem(method);
|
||||||
} catch (MessagingException e) {
|
} catch (MessagingException e) {
|
||||||
throw new IOException(e.getMessage());
|
throw new IOException(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
|
@ -429,7 +429,14 @@ public class EwsExchangeSession extends ExchangeSession {
|
||||||
item.type = "Message";
|
item.type = "Message";
|
||||||
item.mimeContent = Base64.encodeBase64(messageBody);
|
item.mimeContent = Base64.encodeBase64(messageBody);
|
||||||
|
|
||||||
CreateItemMethod createItemMethod = new CreateItemMethod(MessageDisposition.SendAndSaveCopy, getFolderId(SENT), item);
|
MessageDisposition messageDisposition;
|
||||||
|
if (Settings.getBooleanProperty("davmail.smtpSaveInSent", true)) {
|
||||||
|
messageDisposition = MessageDisposition.SendAndSaveCopy;
|
||||||
|
} else {
|
||||||
|
messageDisposition = MessageDisposition.SendOnly;
|
||||||
|
}
|
||||||
|
|
||||||
|
CreateItemMethod createItemMethod = new CreateItemMethod(messageDisposition, getFolderId(SENT), item);
|
||||||
executeMethod(createItemMethod);
|
executeMethod(createItemMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,7 @@ public class SettingsFrame extends JFrame {
|
||||||
JCheckBox showStartupBannerCheckBox;
|
JCheckBox showStartupBannerCheckBox;
|
||||||
JCheckBox imapAutoExpungeCheckBox;
|
JCheckBox imapAutoExpungeCheckBox;
|
||||||
JCheckBox enableEwsCheckBox;
|
JCheckBox enableEwsCheckBox;
|
||||||
|
JCheckBox smtpSaveInSentCheckBox;
|
||||||
|
|
||||||
protected void addSettingComponent(JPanel panel, String label, JComponent component) {
|
protected void addSettingComponent(JPanel panel, String label, JComponent component) {
|
||||||
addSettingComponent(panel, label, component, null);
|
addSettingComponent(panel, label, component, null);
|
||||||
|
@ -370,7 +371,7 @@ public class SettingsFrame extends JFrame {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected JPanel getNetworkSettingsPanel() {
|
protected JPanel getNetworkSettingsPanel() {
|
||||||
JPanel networkSettingsPanel = new JPanel(new GridLayout(4, 2));
|
JPanel networkSettingsPanel = new JPanel(new GridLayout(3, 2));
|
||||||
networkSettingsPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_NETWORK")));
|
networkSettingsPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_NETWORK")));
|
||||||
|
|
||||||
allowRemoteField = new JCheckBox();
|
allowRemoteField = new JCheckBox();
|
||||||
|
@ -380,25 +381,22 @@ public class SettingsFrame extends JFrame {
|
||||||
|
|
||||||
certHashField = new JTextField(Settings.getProperty("davmail.server.certificate.hash"), 15);
|
certHashField = new JTextField(Settings.getProperty("davmail.server.certificate.hash"), 15);
|
||||||
|
|
||||||
disableUpdateCheck = new JCheckBox();
|
|
||||||
disableUpdateCheck.setSelected(Settings.getBooleanProperty("davmail.disableUpdateCheck"));
|
|
||||||
|
|
||||||
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_BIND_ADDRESS"), bindAddressField,
|
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_BIND_ADDRESS"), bindAddressField,
|
||||||
BundleMessage.format("UI_BIND_ADDRESS_HELP"));
|
BundleMessage.format("UI_BIND_ADDRESS_HELP"));
|
||||||
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_ALLOW_REMOTE_CONNECTION"), allowRemoteField,
|
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_ALLOW_REMOTE_CONNECTION"), allowRemoteField,
|
||||||
BundleMessage.format("UI_ALLOW_REMOTE_CONNECTION_HELP"));
|
BundleMessage.format("UI_ALLOW_REMOTE_CONNECTION_HELP"));
|
||||||
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_SERVER_CERTIFICATE_HASH"), certHashField,
|
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_SERVER_CERTIFICATE_HASH"), certHashField,
|
||||||
BundleMessage.format("UI_SERVER_CERTIFICATE_HASH_HELP"));
|
BundleMessage.format("UI_SERVER_CERTIFICATE_HASH_HELP"));
|
||||||
addSettingComponent(networkSettingsPanel, BundleMessage.format("UI_DISABLE_UPDATE_CHECK"), disableUpdateCheck,
|
|
||||||
BundleMessage.format("UI_DISABLE_UPDATE_CHECK_HELP"));
|
|
||||||
updateMaximumSize(networkSettingsPanel);
|
updateMaximumSize(networkSettingsPanel);
|
||||||
return networkSettingsPanel;
|
return networkSettingsPanel;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected JPanel getOtherSettingsPanel() {
|
protected JPanel getOtherSettingsPanel() {
|
||||||
JPanel otherSettingsPanel = new JPanel(new GridLayout(7, 2));
|
JPanel otherSettingsPanel = new JPanel(new GridLayout(9, 2));
|
||||||
otherSettingsPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_OTHER")));
|
otherSettingsPanel.setBorder(BorderFactory.createTitledBorder(BundleMessage.format("UI_OTHER")));
|
||||||
|
|
||||||
|
enableEwsCheckBox = new JCheckBox();
|
||||||
|
enableEwsCheckBox.setSelected(Settings.getBooleanProperty("davmail.enableEws", false));
|
||||||
caldavEditNotificationsField = new JCheckBox();
|
caldavEditNotificationsField = new JCheckBox();
|
||||||
caldavEditNotificationsField.setSelected(Settings.getBooleanProperty("davmail.caldavEditNotifications"));
|
caldavEditNotificationsField.setSelected(Settings.getBooleanProperty("davmail.caldavEditNotifications"));
|
||||||
caldavAlarmSoundField = new JTextField(Settings.getProperty("davmail.caldavAlarmSound"), 15);
|
caldavAlarmSoundField = new JTextField(Settings.getProperty("davmail.caldavAlarmSound"), 15);
|
||||||
|
@ -409,9 +407,13 @@ public class SettingsFrame extends JFrame {
|
||||||
showStartupBannerCheckBox.setSelected(Settings.getBooleanProperty("davmail.showStartupBanner", true));
|
showStartupBannerCheckBox.setSelected(Settings.getBooleanProperty("davmail.showStartupBanner", true));
|
||||||
imapAutoExpungeCheckBox = new JCheckBox();
|
imapAutoExpungeCheckBox = new JCheckBox();
|
||||||
imapAutoExpungeCheckBox.setSelected(Settings.getBooleanProperty("davmail.imapAutoExpunge", true));
|
imapAutoExpungeCheckBox.setSelected(Settings.getBooleanProperty("davmail.imapAutoExpunge", true));
|
||||||
enableEwsCheckBox = new JCheckBox();
|
smtpSaveInSentCheckBox = new JCheckBox();
|
||||||
enableEwsCheckBox.setSelected(Settings.getBooleanProperty("davmail.enableEws", false));
|
smtpSaveInSentCheckBox.setSelected(Settings.getBooleanProperty("davmail.smtpSaveInSent", true));
|
||||||
|
disableUpdateCheck = new JCheckBox();
|
||||||
|
disableUpdateCheck.setSelected(Settings.getBooleanProperty("davmail.disableUpdateCheck"));
|
||||||
|
|
||||||
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_ENABLE_EWS"), enableEwsCheckBox,
|
||||||
|
BundleMessage.format("UI_ENABLE_EWS_HELP"));
|
||||||
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_CALDAV_EDIT_NOTIFICATIONS"), caldavEditNotificationsField,
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_CALDAV_EDIT_NOTIFICATIONS"), caldavEditNotificationsField,
|
||||||
BundleMessage.format("UI_CALDAV_EDIT_NOTIFICATIONS_HELP"));
|
BundleMessage.format("UI_CALDAV_EDIT_NOTIFICATIONS_HELP"));
|
||||||
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_CALDAV_ALARM_SOUND"), caldavAlarmSoundField,
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_CALDAV_ALARM_SOUND"), caldavAlarmSoundField,
|
||||||
|
@ -424,8 +426,10 @@ public class SettingsFrame extends JFrame {
|
||||||
BundleMessage.format("UI_SHOW_STARTUP_BANNER_HELP"));
|
BundleMessage.format("UI_SHOW_STARTUP_BANNER_HELP"));
|
||||||
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_IMAP_AUTO_EXPUNGE"), imapAutoExpungeCheckBox,
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_IMAP_AUTO_EXPUNGE"), imapAutoExpungeCheckBox,
|
||||||
BundleMessage.format("UI_IMAP_AUTO_EXPUNGE_HELP"));
|
BundleMessage.format("UI_IMAP_AUTO_EXPUNGE_HELP"));
|
||||||
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_ENABLE_EWS"), enableEwsCheckBox,
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_SAVE_IN_SENT"), smtpSaveInSentCheckBox,
|
||||||
BundleMessage.format("UI_ENABLE_EWS_HELP"));
|
BundleMessage.format("UI_SAVE_IN_SENT_HELP"));
|
||||||
|
addSettingComponent(otherSettingsPanel, BundleMessage.format("UI_DISABLE_UPDATE_CHECK"), disableUpdateCheck,
|
||||||
|
BundleMessage.format("UI_DISABLE_UPDATE_CHECK_HELP"));
|
||||||
|
|
||||||
Dimension preferredSize = otherSettingsPanel.getPreferredSize();
|
Dimension preferredSize = otherSettingsPanel.getPreferredSize();
|
||||||
preferredSize.width = Integer.MAX_VALUE;
|
preferredSize.width = Integer.MAX_VALUE;
|
||||||
|
@ -528,6 +532,7 @@ public class SettingsFrame extends JFrame {
|
||||||
showStartupBannerCheckBox.setSelected(Settings.getBooleanProperty("davmail.showStartupBanner", true));
|
showStartupBannerCheckBox.setSelected(Settings.getBooleanProperty("davmail.showStartupBanner", true));
|
||||||
imapAutoExpungeCheckBox.setSelected(Settings.getBooleanProperty("davmail.imapAutoExpunge", true));
|
imapAutoExpungeCheckBox.setSelected(Settings.getBooleanProperty("davmail.imapAutoExpunge", true));
|
||||||
enableEwsCheckBox.setSelected(Settings.getBooleanProperty("davmail.enableEws", false));
|
enableEwsCheckBox.setSelected(Settings.getBooleanProperty("davmail.enableEws", false));
|
||||||
|
smtpSaveInSentCheckBox.setSelected(Settings.getBooleanProperty("davmail.smtpSaveInSent", true));
|
||||||
|
|
||||||
keystoreTypeCombo.setSelectedItem(Settings.getProperty("davmail.ssl.keystoreType"));
|
keystoreTypeCombo.setSelectedItem(Settings.getProperty("davmail.ssl.keystoreType"));
|
||||||
keystoreFileField.setText(Settings.getProperty("davmail.ssl.keystoreFile"));
|
keystoreFileField.setText(Settings.getProperty("davmail.ssl.keystoreFile"));
|
||||||
|
@ -594,9 +599,8 @@ public class SettingsFrame extends JFrame {
|
||||||
JPanel proxyPanel = new JPanel();
|
JPanel proxyPanel = new JPanel();
|
||||||
proxyPanel.setLayout(new BoxLayout(proxyPanel, BoxLayout.Y_AXIS));
|
proxyPanel.setLayout(new BoxLayout(proxyPanel, BoxLayout.Y_AXIS));
|
||||||
proxyPanel.add(getProxyPanel());
|
proxyPanel.add(getProxyPanel());
|
||||||
// empty panel
|
proxyPanel.add(getNetworkSettingsPanel());
|
||||||
proxyPanel.add(new JPanel());
|
tabbedPane.add(BundleMessage.format("UI_TAB_NETWORK"), proxyPanel);
|
||||||
tabbedPane.add(BundleMessage.format("UI_TAB_PROXY"), proxyPanel);
|
|
||||||
|
|
||||||
JPanel encryptionPanel = new JPanel();
|
JPanel encryptionPanel = new JPanel();
|
||||||
encryptionPanel.setLayout(new BoxLayout(encryptionPanel, BoxLayout.Y_AXIS));
|
encryptionPanel.setLayout(new BoxLayout(encryptionPanel, BoxLayout.Y_AXIS));
|
||||||
|
@ -617,7 +621,6 @@ public class SettingsFrame extends JFrame {
|
||||||
JPanel advancedPanel = new JPanel();
|
JPanel advancedPanel = new JPanel();
|
||||||
advancedPanel.setLayout(new BoxLayout(advancedPanel, BoxLayout.Y_AXIS));
|
advancedPanel.setLayout(new BoxLayout(advancedPanel, BoxLayout.Y_AXIS));
|
||||||
|
|
||||||
advancedPanel.add(getNetworkSettingsPanel());
|
|
||||||
advancedPanel.add(getOtherSettingsPanel());
|
advancedPanel.add(getOtherSettingsPanel());
|
||||||
// empty panel
|
// empty panel
|
||||||
advancedPanel.add(new JPanel());
|
advancedPanel.add(new JPanel());
|
||||||
|
@ -667,6 +670,7 @@ public class SettingsFrame extends JFrame {
|
||||||
Settings.setProperty("davmail.showStartupBanner", String.valueOf(showStartupBannerCheckBox.isSelected()));
|
Settings.setProperty("davmail.showStartupBanner", String.valueOf(showStartupBannerCheckBox.isSelected()));
|
||||||
Settings.setProperty("davmail.imapAutoExpunge", String.valueOf(imapAutoExpungeCheckBox.isSelected()));
|
Settings.setProperty("davmail.imapAutoExpunge", String.valueOf(imapAutoExpungeCheckBox.isSelected()));
|
||||||
Settings.setProperty("davmail.enableEws", String.valueOf(enableEwsCheckBox.isSelected()));
|
Settings.setProperty("davmail.enableEws", String.valueOf(enableEwsCheckBox.isSelected()));
|
||||||
|
Settings.setProperty("davmail.smtpSaveInSent", String.valueOf(smtpSaveInSentCheckBox.isSelected()));
|
||||||
|
|
||||||
Settings.setProperty("davmail.ssl.keystoreType", (String) keystoreTypeCombo.getSelectedItem());
|
Settings.setProperty("davmail.ssl.keystoreType", (String) keystoreTypeCombo.getSelectedItem());
|
||||||
Settings.setProperty("davmail.ssl.keystoreFile", keystoreFileField.getText());
|
Settings.setProperty("davmail.ssl.keystoreFile", keystoreFileField.getText());
|
||||||
|
|
|
@ -226,7 +226,7 @@ UI_SMTP_PORT_HELP=Local SMTP server port to configure in mail client
|
||||||
UI_TAB_ADVANCED=Advanced
|
UI_TAB_ADVANCED=Advanced
|
||||||
UI_TAB_ENCRYPTION=Encryption
|
UI_TAB_ENCRYPTION=Encryption
|
||||||
UI_TAB_MAIN=Main
|
UI_TAB_MAIN=Main
|
||||||
UI_TAB_PROXY=Proxy
|
UI_TAB_NETWORK=Network
|
||||||
UI_UNTRUSTED_CERTIFICATE=Server provided an untrusted certificate,\n you can choose to accept or deny access.\n Accept certificate (y/n)?
|
UI_UNTRUSTED_CERTIFICATE=Server provided an untrusted certificate,\n you can choose to accept or deny access.\n Accept certificate (y/n)?
|
||||||
UI_UNTRUSTED_CERTIFICATE_HTML=<html><b>Server provided an untrusted certificate,<br> you can choose to accept or deny access</b></html>
|
UI_UNTRUSTED_CERTIFICATE_HTML=<html><b>Server provided an untrusted certificate,<br> you can choose to accept or deny access</b></html>
|
||||||
UI_VALID_FROM=Valid from
|
UI_VALID_FROM=Valid from
|
||||||
|
@ -274,4 +274,6 @@ UI_NOTIFICATION_BODY=Caldav notification comment
|
||||||
UI_CALDAV_EDIT_NOTIFICATIONS=Edit Caldav notifications:
|
UI_CALDAV_EDIT_NOTIFICATIONS=Edit Caldav notifications:
|
||||||
UI_CALDAV_EDIT_NOTIFICATIONS_HELP=Enable interactive Caldav edit notification window
|
UI_CALDAV_EDIT_NOTIFICATIONS_HELP=Enable interactive Caldav edit notification window
|
||||||
LOG_SEARCH_RESULT=Found {0} item(s)
|
LOG_SEARCH_RESULT=Found {0} item(s)
|
||||||
UI_LOG_FILE_SIZE=Log file size:
|
UI_LOG_FILE_SIZE=Log file size:
|
||||||
|
UI_SAVE_IN_SENT=SMTP save in sent:
|
||||||
|
UI_SAVE_IN_SENT_HELP=Save messages sent over SMTP in server Sent folder
|
|
@ -203,7 +203,7 @@ UI_SMTP_PORT_HELP=Port SMTP local
|
||||||
UI_TAB_ADVANCED=Avancé
|
UI_TAB_ADVANCED=Avancé
|
||||||
UI_TAB_ENCRYPTION=Chiffrement
|
UI_TAB_ENCRYPTION=Chiffrement
|
||||||
UI_TAB_MAIN=Général
|
UI_TAB_MAIN=Général
|
||||||
UI_TAB_PROXY=Proxy
|
UI_TAB_NETWORK=Réseau
|
||||||
UI_UNTRUSTED_CERTIFICATE=Le certificat fourni par le serveur n''est certifié par aucune autorité de confiance,\n vous pouvez choisir d''accepter ou de rejeter l''accès
|
UI_UNTRUSTED_CERTIFICATE=Le certificat fourni par le serveur n''est certifié par aucune autorité de confiance,\n vous pouvez choisir d''accepter ou de rejeter l''accès
|
||||||
UI_UNTRUSTED_CERTIFICATE_HTML=<html><b>Le certificat fourni par le serveur n''est certifié par aucune autorité de confiance,<br> vous pouvez choisir d''accepter ou de rejeter l''accès</b></html>
|
UI_UNTRUSTED_CERTIFICATE_HTML=<html><b>Le certificat fourni par le serveur n''est certifié par aucune autorité de confiance,<br> vous pouvez choisir d''accepter ou de rejeter l''accès</b></html>
|
||||||
UI_VALID_FROM=Emis le
|
UI_VALID_FROM=Emis le
|
||||||
|
@ -274,3 +274,5 @@ UI_CC_HELP=Destinataires en copie
|
||||||
UI_CALDAV_EDIT_NOTIFICATIONS=Edition notifications Caldav :
|
UI_CALDAV_EDIT_NOTIFICATIONS=Edition notifications Caldav :
|
||||||
UI_CALDAV_EDIT_NOTIFICATIONS_HELP=Activer le fenêtre d'édition interactive des notifications
|
UI_CALDAV_EDIT_NOTIFICATIONS_HELP=Activer le fenêtre d'édition interactive des notifications
|
||||||
LOG_SEARCH_RESULT={0} élément(s) trouvé(s)
|
LOG_SEARCH_RESULT={0} élément(s) trouvé(s)
|
||||||
|
UI_SAVE_IN_SENT=SMTP copie dans Envoyés :
|
||||||
|
UI_SAVE_IN_SENT_HELP=Créer une copie des messages envoyés via SMTP dans le dossier serveur "Envoyés"
|
||||||
|
|
Loading…
Reference in New Issue