#1679 ✓fixreleased
Chris

[Feature Request] "SMTP Only" Accounts

Reported by Chris | February 8th, 2017 @ 12:07 AM

Hi, I currently use a setup like this:

[Account A]
 - Inbox
 - Forwarded B
 - Forwarded C
 - Drafts
 - Sent

[Account B]
  - Drafts
  - Sent

[Account C]
  - Drafts
  - Sent

All mails to account B and C are forwarded to account A and automatically moved to the respective subfolders of account A (server-side filtering). No copies are kept in account B or C.

Mails from account A are sent through SMTP A, mails from account B and C are sent through SMTP B and SMTP C. No folders other than Drafts and Sent are subscribed from account B and C, as there are no mails in these accounts.

I would like to:

1) Immediately store drafts and sent messages from account B and C in the Drafts and Sent folder of account A.

2) Hide account B and C from the sources after 1) is set up.

May I point to Claws Mail for reference? It allows hiding accounts from the sources ("folder list" in Claws Mail) and also lets you set up accounts as "SMTP only". For each account, the user can select where to save drafts as well as outgoing, sent and deleted messages without being limited to folders within the same account.

This ultimately provides a very tidy workspace for people who consolidate various mail accounts in one place, i.e., their preferred IMAP server.

Another approach might be to allow multiple SMTP servers in account A, with individually configurable address patterns for each SMTP server.

Update: I did not find tickets #520, #220 and https://lists.freron.com/mailmate/2016-January/005366.html when I created this ticket. I guess, this is rather an addendum to those and should not have been a new ticket. Sorry for that.

I can add a SMTP server by manually editing Submission.plist.

{ name = "Provider D (john.doe)";
  port = "465";
  portSelection = "manual";
  requireSSL = :true;
  serverURL = "smtp://user@smtp.provider-d.test";
},

This server has no own entry in Sources.plist and is not shown in the Sources. When composing an e-mail I can select this server from the dropdown list made available by:

defaults write com.freron.MailMate MmSMTPAlternativeEnabled -bool YES

The line

"smtp2" = "smtp://smtp.provider-d.test";

added to the settings of account A in Sources.plist seems to link SMTP server D to account A and direct drafts and messages sent through that SMTP server to the respective folders of account A. Am I right about this?

As 'serverURL' in Identities.plist points to IMAP-Accounts, I am unable to assign an address pattern to this SMTP server in order to trigger its automatic selection for outgoing messages with fitting addresses.

This has been addressed on the mailing list:

https://lists.freron.com/mailmate/2016-December/007333.html
https://lists.freron.com/mailmate/2016-December/007333.html

Editing any IMAP account settings in the Mailmate GUI will cause the added SMTP server to be dropped from Submission.plist, which makes this a really fragile hack.

I would like it if Mailmate put less effort into trying to figure out and remembering what e-mail address and SMTP server to use on outgoing messages and rather stuck to simple address patterns configurable for each SMTP server (and multiple SMTP servers in an account), with a user configurable fallback for when no rule matches.

Comments and changes to this ticket

  • benny

    benny March 1st, 2017 @ 03:39 PM

    I think all of your observations are correct.

    If I understand correctly you don't really need account B and C since the forwarding happens server side?

    But you do need the SMTP settings and you need some way to map email addresses to these SMTP settings.

    I kind of like the SMTP-only accounts you describe for Claws Mail, because it would mean that it might not be necessary to add much specialized GUI for this to work.

    Let's imagine that I did the following:

    • Allow an “account” to not have any IMAP settings (but the rest is allowed including identity related settings).
    • Use the SMTP server from this account when a sender email address matches its settings.

    Hmm, I would probably need to require that a drafts folder is specified as well such that I know which IMAP account to use for new messages. (Something like this would also be needed somewhere in the GUI...)

    Does this make sense to you? Would it solve your problem? (I'm looking for the path of least resistance while also making it as flexible as possible. I would also like most users not having to see a lot of rarely used account settings. If anything, I would like to simplify account settings.)

  • Chris

    Chris March 1st, 2017 @ 04:53 PM

    Yes, that indeed makes sense to me and would help.

    Cheers,
    Chris

  • benny

    benny March 4th, 2017 @ 11:42 AM

    • State changed from “new” to “fixcommitted”

    Hold down ⌥ when clicking “Check Now” in the Software Update preferences pane. Quit MailMate and add something like the following:

    Submission.plist:

    {   serverURL = "smtp://extra@smtp.example.com";
        name = "Extra SMTP";
    },
    

    Identities.plist:

    {   emailAddresses = "test@example.com";
        name = "John Appleseed";
        serverURL = "imap://existing_account@imap.example.com";
        smtp = "smtp://extra@smtp.example.com";
    },
    

    Note how serverURL and smtp matches. The SMTP server should not be referenced by anything in Sources.plist (in that case the above wouldn't be needed at all).

    I haven't done much testing yet.

  • Chris

    Chris March 26th, 2017 @ 11:00 PM

    Hi,

    sorry, I did not get to respond sooner. My mail provider ran into severe IMAP issues over the last weeks after some server updates, which is why I temporarily refrained from playing around with the mail client.

    I just tried it and adding an extra SMTP as described in your last post works for me.

    The matching of e-mail addresses to SMTP servers gives some unexpected results, though.

    If I add STMP B to account A and sent a test message from host@domain-b.test (assigned to SMTP B) to host@domain-a.test (assigned to SMTP A), SMTP B is selected. If I then respond to that message (sender is now host@domain-a.test), Mailmate fails to choose SMTP A and instead selects SMTP B. If I override this and manually select SMTP A, Mailmate will remember this. If then again I reply to the previous reply (sender is now host@domain-b.test), STMP A will be selected, while it should be SMTP B. If changed again manually, SMTP B will again be chosen also in the other direction.

    It appears that Mailmate does not make and remember the decision based on sender address alone, which in this scenario leads to wrong selections.

  • benny

    benny September 22nd, 2017 @ 12:55 PM

    • State changed from “fixcommitted” to “fixreleased”
  • Jon

    Jon February 14th, 2019 @ 03:47 PM

    I had a Source configured similar to OP, then I removed the source, quit MailMate, then made the changes described to above. I reopened MM and it reverted the Identities.plist file removing my new entry. Any ideas?

  • benny

    benny March 4th, 2019 @ 12:17 PM

    @Jon: No, I guess it's possible that this never really worked. This might be easier to debug if you send me a set of example .plist files which MailMate does “alters” when launching. You can use “Help ▸ Send Feedback”.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

Mac OS X email client.

Shared Ticket Bins

People watching this ticket

Referenced by

Pages