From 589a268ffbd973ef3cc2114bd8b8dc96f76527e5 Mon Sep 17 00:00:00 2001 From: Chuck Date: Sat, 6 Jul 2013 18:19:36 +0700 Subject: [PATCH] Adding ability to specify listening address --- src/bitmessageqt/__init__.py | 4 + src/bitmessageqt/settings.py | 148 +++++++++------- src/bitmessageqt/settings.ui | 322 ++++++++++++++++++++--------------- src/class_pop3Server.py | 7 +- src/class_smtpServer.py | 7 +- src/helper_startup.py | 2 + 6 files changed, 290 insertions(+), 200 deletions(-) diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 7a348529..121cf4d7 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -2778,6 +2778,8 @@ class settingsDialog(QtGui.QDialog): self.ui.checkBoxEnableSMTPPOP3Servers.setChecked(False) try: + self.ui.lineEditSMTPAddress.setText( + str(shared.config.getint('bitmessagesettings', 'smtpaddress'))) self.ui.lineEditSMTPPort.setText( str(shared.config.getint('bitmessagesettings', 'smtpport'))) self.ui.checkBoxEnableSMTPSSL.setChecked( @@ -2786,6 +2788,8 @@ class settingsDialog(QtGui.QDialog): self.ui.lineEditSMTPPort.setText('10025') self.ui.checkBoxEnableSMTPSSL.setChecked(False) try: + self.ui.lineEditPOP3Address.setText( + str(shared.config.getint('bitmessagesettings', 'pop3address'))) self.ui.lineEditPOP3Port.setText( str(shared.config.getint('bitmessagesettings', 'pop3port'))) self.ui.checkBoxEnablePOP3SSL.setChecked( diff --git a/src/bitmessageqt/settings.py b/src/bitmessageqt/settings.py index 184ffb74..7eb5e663 100644 --- a/src/bitmessageqt/settings.py +++ b/src/bitmessageqt/settings.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'settings.ui' # -# Created: Fri Jul 05 01:56:20 2013 +# Created: Sat Jul 06 18:17:40 2013 # by: PyQt4 UI code generator 4.10.1 # # WARNING! All changes made in this file will be lost! @@ -228,14 +228,80 @@ class Ui_settingsDialog(object): self.tab_3.setObjectName(_fromUtf8("tab_3")) self.gridLayout_8 = QtGui.QGridLayout(self.tab_3) self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8")) + self.lineEditSMTPAddress = QtGui.QLineEdit(self.tab_3) + self.lineEditSMTPAddress.setMinimumSize(QtCore.QSize(101, 0)) + self.lineEditSMTPAddress.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.lineEditSMTPAddress.setObjectName(_fromUtf8("lineEditSMTPAddress")) + self.gridLayout_8.addWidget(self.lineEditSMTPAddress, 1, 2, 1, 2) + self.label_19 = QtGui.QLabel(self.tab_3) + self.label_19.setObjectName(_fromUtf8("label_19")) + self.gridLayout_8.addWidget(self.label_19, 1, 1, 1, 1) + spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.gridLayout_8.addItem(spacerItem8, 1, 0, 1, 1) + self.label_16 = QtGui.QLabel(self.tab_3) + self.label_16.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_16.setObjectName(_fromUtf8("label_16")) + self.gridLayout_8.addWidget(self.label_16, 1, 4, 1, 1) + self.lineEditSMTPPort = QtGui.QLineEdit(self.tab_3) + self.lineEditSMTPPort.setEnabled(True) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.lineEditSMTPPort.sizePolicy().hasHeightForWidth()) + self.lineEditSMTPPort.setSizePolicy(sizePolicy) + self.lineEditSMTPPort.setMaximumSize(QtCore.QSize(70, 16777215)) + self.lineEditSMTPPort.setObjectName(_fromUtf8("lineEditSMTPPort")) + self.gridLayout_8.addWidget(self.lineEditSMTPPort, 1, 5, 1, 1) + spacerItem9 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.gridLayout_8.addItem(spacerItem9, 8, 0, 1, 4) + spacerItem10 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.gridLayout_8.addItem(spacerItem10, 2, 0, 1, 1) + self.checkBoxEnableSMTPPOP3Servers = QtGui.QCheckBox(self.tab_3) + self.checkBoxEnableSMTPPOP3Servers.setObjectName(_fromUtf8("checkBoxEnableSMTPPOP3Servers")) + self.gridLayout_8.addWidget(self.checkBoxEnableSMTPPOP3Servers, 0, 0, 1, 1) + self.horizontalLayout_4 = QtGui.QHBoxLayout() + self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) + spacerItem11 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_4.addItem(spacerItem11) + self.pushButtonFindSSLKeyfile = QtGui.QPushButton(self.tab_3) + self.pushButtonFindSSLKeyfile.setObjectName(_fromUtf8("pushButtonFindSSLKeyfile")) + self.horizontalLayout_4.addWidget(self.pushButtonFindSSLKeyfile) + self.gridLayout_8.addLayout(self.horizontalLayout_4, 4, 0, 1, 7) + self.lineEditPOP3Port = QtGui.QLineEdit(self.tab_3) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.lineEditPOP3Port.sizePolicy().hasHeightForWidth()) + self.lineEditPOP3Port.setSizePolicy(sizePolicy) + self.lineEditPOP3Port.setMaximumSize(QtCore.QSize(70, 16777215)) + self.lineEditPOP3Port.setObjectName(_fromUtf8("lineEditPOP3Port")) + self.gridLayout_8.addWidget(self.lineEditPOP3Port, 2, 5, 1, 1) + self.checkBoxEnablePOP3SSL = QtGui.QCheckBox(self.tab_3) + self.checkBoxEnablePOP3SSL.setObjectName(_fromUtf8("checkBoxEnablePOP3SSL")) + self.gridLayout_8.addWidget(self.checkBoxEnablePOP3SSL, 2, 6, 1, 1) + self.checkBoxEnableSMTPSSL = QtGui.QCheckBox(self.tab_3) + self.checkBoxEnableSMTPSSL.setObjectName(_fromUtf8("checkBoxEnableSMTPSSL")) + self.gridLayout_8.addWidget(self.checkBoxEnableSMTPSSL, 1, 6, 1, 1) + self.label_17 = QtGui.QLabel(self.tab_3) + self.label_17.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_17.setObjectName(_fromUtf8("label_17")) + self.gridLayout_8.addWidget(self.label_17, 2, 4, 1, 1) + self.lineEditPOP3Address = QtGui.QLineEdit(self.tab_3) + self.lineEditPOP3Address.setMinimumSize(QtCore.QSize(101, 0)) + self.lineEditPOP3Address.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.lineEditPOP3Address.setObjectName(_fromUtf8("lineEditPOP3Address")) + self.gridLayout_8.addWidget(self.lineEditPOP3Address, 2, 2, 1, 2) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) - spacerItem8 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_3.addItem(spacerItem8) + spacerItem12 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_3.addItem(spacerItem12) self.pushButtonFindSSLCertificate = QtGui.QPushButton(self.tab_3) self.pushButtonFindSSLCertificate.setObjectName(_fromUtf8("pushButtonFindSSLCertificate")) self.horizontalLayout_3.addWidget(self.pushButtonFindSSLCertificate) - self.gridLayout_8.addLayout(self.horizontalLayout_3, 3, 0, 1, 4) + self.gridLayout_8.addLayout(self.horizontalLayout_3, 3, 0, 1, 7) + self.label_20 = QtGui.QLabel(self.tab_3) + self.label_20.setObjectName(_fromUtf8("label_20")) + self.gridLayout_8.addWidget(self.label_20, 2, 1, 1, 1) self.groupBox_3 = QtGui.QGroupBox(self.tab_3) self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) self.gridLayout_9 = QtGui.QGridLayout(self.groupBox_3) @@ -248,14 +314,14 @@ class Ui_settingsDialog(object): self.pushButtonClearPassword = QtGui.QPushButton(self.groupBox_3) self.pushButtonClearPassword.setObjectName(_fromUtf8("pushButtonClearPassword")) self.horizontalLayout_2.addWidget(self.pushButtonClearPassword) - spacerItem9 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_2.addItem(spacerItem9) + spacerItem13 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem13) self.labelAccountStatus = QtGui.QLabel(self.groupBox_3) self.labelAccountStatus.setObjectName(_fromUtf8("labelAccountStatus")) self.horizontalLayout_2.addWidget(self.labelAccountStatus) self.gridLayout_9.addLayout(self.horizontalLayout_2, 2, 0, 1, 2) - spacerItem10 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.gridLayout_9.addItem(spacerItem10, 0, 1, 1, 1) + spacerItem14 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.gridLayout_9.addItem(spacerItem14, 0, 1, 1, 1) self.comboBoxEmailIdentities = QtGui.QComboBox(self.groupBox_3) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -287,55 +353,7 @@ class Ui_settingsDialog(object): self.lineEditEmailAddress.setObjectName(_fromUtf8("lineEditEmailAddress")) self.horizontalLayout_5.addWidget(self.lineEditEmailAddress) self.gridLayout_9.addLayout(self.horizontalLayout_5, 1, 0, 1, 2) - self.gridLayout_8.addWidget(self.groupBox_3, 7, 0, 1, 4) - self.label_17 = QtGui.QLabel(self.tab_3) - self.label_17.setObjectName(_fromUtf8("label_17")) - self.gridLayout_8.addWidget(self.label_17, 2, 1, 1, 1) - self.label_16 = QtGui.QLabel(self.tab_3) - self.label_16.setObjectName(_fromUtf8("label_16")) - self.gridLayout_8.addWidget(self.label_16, 1, 1, 1, 1) - self.checkBoxEnablePOP3SSL = QtGui.QCheckBox(self.tab_3) - self.checkBoxEnablePOP3SSL.setObjectName(_fromUtf8("checkBoxEnablePOP3SSL")) - self.gridLayout_8.addWidget(self.checkBoxEnablePOP3SSL, 2, 3, 1, 1) - self.lineEditPOP3Port = QtGui.QLineEdit(self.tab_3) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.lineEditPOP3Port.sizePolicy().hasHeightForWidth()) - self.lineEditPOP3Port.setSizePolicy(sizePolicy) - self.lineEditPOP3Port.setMaximumSize(QtCore.QSize(70, 16777215)) - self.lineEditPOP3Port.setObjectName(_fromUtf8("lineEditPOP3Port")) - self.gridLayout_8.addWidget(self.lineEditPOP3Port, 2, 2, 1, 1) - spacerItem11 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.gridLayout_8.addItem(spacerItem11, 8, 0, 1, 4) - spacerItem12 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.gridLayout_8.addItem(spacerItem12, 2, 0, 1, 1) - self.checkBoxEnableSMTPSSL = QtGui.QCheckBox(self.tab_3) - self.checkBoxEnableSMTPSSL.setObjectName(_fromUtf8("checkBoxEnableSMTPSSL")) - self.gridLayout_8.addWidget(self.checkBoxEnableSMTPSSL, 1, 3, 1, 1) - self.lineEditSMTPPort = QtGui.QLineEdit(self.tab_3) - self.lineEditSMTPPort.setEnabled(True) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.lineEditSMTPPort.sizePolicy().hasHeightForWidth()) - self.lineEditSMTPPort.setSizePolicy(sizePolicy) - self.lineEditSMTPPort.setMaximumSize(QtCore.QSize(70, 16777215)) - self.lineEditSMTPPort.setObjectName(_fromUtf8("lineEditSMTPPort")) - self.gridLayout_8.addWidget(self.lineEditSMTPPort, 1, 2, 1, 1) - spacerItem13 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.gridLayout_8.addItem(spacerItem13, 1, 0, 1, 1) - self.checkBoxEnableSMTPPOP3Servers = QtGui.QCheckBox(self.tab_3) - self.checkBoxEnableSMTPPOP3Servers.setObjectName(_fromUtf8("checkBoxEnableSMTPPOP3Servers")) - self.gridLayout_8.addWidget(self.checkBoxEnableSMTPPOP3Servers, 0, 0, 1, 1) - self.horizontalLayout_4 = QtGui.QHBoxLayout() - self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) - spacerItem14 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.horizontalLayout_4.addItem(spacerItem14) - self.pushButtonFindSSLKeyfile = QtGui.QPushButton(self.tab_3) - self.pushButtonFindSSLKeyfile.setObjectName(_fromUtf8("pushButtonFindSSLKeyfile")) - self.horizontalLayout_4.addWidget(self.pushButtonFindSSLKeyfile) - self.gridLayout_8.addLayout(self.horizontalLayout_4, 4, 0, 1, 4) + self.gridLayout_8.addWidget(self.groupBox_3, 7, 0, 1, 7) self.tabWidgetSettings.addTab(self.tab_3, _fromUtf8("")) self.gridLayout.addWidget(self.tabWidgetSettings, 0, 0, 1, 1) @@ -391,18 +409,22 @@ class Ui_settingsDialog(object): self.label_13.setText(_translate("settingsDialog", "Maximum acceptable total difficulty:", None)) self.label_14.setText(_translate("settingsDialog", "Maximum acceptable small message difficulty:", None)) self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tab_2), _translate("settingsDialog", "Max acceptable difficulty", None)) + self.lineEditSMTPAddress.setText(_translate("settingsDialog", "127.0.0.1", None)) + self.label_19.setText(_translate("settingsDialog", "SMTP Listen Address:", None)) + self.label_16.setText(_translate("settingsDialog", "SMTP Port:", None)) + self.checkBoxEnableSMTPPOP3Servers.setText(_translate("settingsDialog", "Enable SMTP && POP3 Servers", None)) + self.pushButtonFindSSLKeyfile.setText(_translate("settingsDialog", "Find SSL Keyfile...", None)) + self.checkBoxEnablePOP3SSL.setText(_translate("settingsDialog", "SSL", None)) + self.checkBoxEnableSMTPSSL.setText(_translate("settingsDialog", "SSL", None)) + self.label_17.setText(_translate("settingsDialog", "POP3 Port:", None)) + self.lineEditPOP3Address.setText(_translate("settingsDialog", "127.0.0.1", None)) self.pushButtonFindSSLCertificate.setText(_translate("settingsDialog", "Find SSL Certificate...", None)) + self.label_20.setText(_translate("settingsDialog", "POP3 Listen Address:", None)) self.groupBox_3.setTitle(_translate("settingsDialog", "Identities", None)) self.pushButtonSetPassword.setText(_translate("settingsDialog", "Set Password...", None)) self.pushButtonClearPassword.setText(_translate("settingsDialog", "Clear Password", None)) self.labelAccountStatus.setText(_translate("settingsDialog", "Account Inaccessible via SMTP/POP3. Set a password to allow access.", None)) self.label_18.setText(_translate("settingsDialog", "E-Mail Address for this Identity:", None)) self.lineEditEmailAddress.setText(_translate("settingsDialog", "fsdpffffffffffffffffffffffffffffffffffffffffffffffasdpofiasjdf", None)) - self.label_17.setText(_translate("settingsDialog", "POP3 Port", None)) - self.label_16.setText(_translate("settingsDialog", "SMTP Port:", None)) - self.checkBoxEnablePOP3SSL.setText(_translate("settingsDialog", "SSL", None)) - self.checkBoxEnableSMTPSSL.setText(_translate("settingsDialog", "SSL", None)) - self.checkBoxEnableSMTPPOP3Servers.setText(_translate("settingsDialog", "Enable SMTP && POP3 Servers", None)) - self.pushButtonFindSSLKeyfile.setText(_translate("settingsDialog", "Find SSL Keyfile...", None)) self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tab_3), _translate("settingsDialog", "SMTP && POP3", None)) diff --git a/src/bitmessageqt/settings.ui b/src/bitmessageqt/settings.ui index d03ac47f..925d40ed 100644 --- a/src/bitmessageqt/settings.ui +++ b/src/bitmessageqt/settings.ui @@ -496,7 +496,185 @@ SMTP && POP3 - + + + + + 101 + 0 + + + + 127.0.0.1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + SMTP Listen Address: + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + SMTP Port: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + true + + + + 0 + 0 + + + + + 70 + 16777215 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Enable SMTP && POP3 Servers + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Find SSL Keyfile... + + + + + + + + + + 0 + 0 + + + + + 70 + 16777215 + + + + + + + + SSL + + + + + + + SSL + + + + + + + POP3 Port: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 101 + 0 + + + + 127.0.0.1 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + @@ -520,7 +698,14 @@ - + + + + POP3 Listen Address: + + + + Identities @@ -638,139 +823,6 @@ - - - - POP3 Port - - - - - - - SMTP Port: - - - - - - - SSL - - - - - - - - 0 - 0 - - - - - 70 - 16777215 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - SSL - - - - - - - true - - - - 0 - 0 - - - - - 70 - 16777215 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Enable SMTP && POP3 Servers - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Find SSL Keyfile... - - - - - diff --git a/src/class_pop3Server.py b/src/class_pop3Server.py index e155d18e..3e03a9c5 100644 --- a/src/class_pop3Server.py +++ b/src/class_pop3Server.py @@ -272,8 +272,13 @@ class bitmessagePOP3Server(asyncore.dispatcher): self.keyfile = shared.config.get('bitmessagesettings', 'keyfile') self.certfile = shared.config.get('bitmessagesettings', 'certfile') + try: + bindAddress = shared.config.get('bitmessagesettings', 'pop3address') + except: + bindAddress = '127.0.0.1' + self.create_socket(socket.AF_INET, socket.SOCK_STREAM) - self.bind(('127.0.0.1', pop3port)) + self.bind((bindAddress, pop3port)) self.listen(10) shared.printLock.acquire() diff --git a/src/class_smtpServer.py b/src/class_smtpServer.py index ad3a5f1a..4e4fb43e 100644 --- a/src/class_smtpServer.py +++ b/src/class_smtpServer.py @@ -318,7 +318,12 @@ class bitmessageSMTPServer(smtpd.SMTPServer): self.keyfile = shared.config.get('bitmessagesettings', 'keyfile') self.certfile = shared.config.get('bitmessagesettings', 'certfile') - smtpd.SMTPServer.__init__(self, ('127.0.0.1', smtpport), None) + try: + bindAddress = shared.config.get('bitmessagesettings', 'smtpaddress') + except: + bindAddress = '127.0.0.1' + + smtpd.SMTPServer.__init__(self, (bindAddress, smtpport), None) shared.printLock.acquire() print "SMTP server started: SSL enabled={}".format(str(self.ssl)) shared.printLock.release() diff --git a/src/helper_startup.py b/src/helper_startup.py index 43625ffa..0ebc3fa0 100644 --- a/src/helper_startup.py +++ b/src/helper_startup.py @@ -29,8 +29,10 @@ def loadConfig(): shared.config.set('bitmessagesettings', 'settingsversion', '6') shared.config.set('bitmessagesettings', 'port', '8444') shared.config.set('bitmessagesettings', 'smtppop3enable', 'false') + shared.config.set('bitmessagesettings', 'smtpaddress', '127.0.0.1') shared.config.set('bitmessagesettings', 'smtpport', '10025') shared.config.set('bitmessagesettings', 'smtpssl', 'false') + shared.config.set('bitmessagesettings', 'pop3address', '127.0.0.1') shared.config.set('bitmessagesettings', 'pop3port', '10110') shared.config.set('bitmessagesettings', 'pop3ssl', 'false') shared.config.set(