On Tue, Nov 02, 2010 at 02:36:09PM +0000, Adam Spiers wrote:
> Hi all,
> 
> I'm seeing some very strange behaviour regarding the selection of a
> default account with the following config file:

[snipped]

> When I run msmtp in 'pretend' mode, it all looks good:

[snipped]

> However, when I remove the '-P' flag, it goes horribly wrong:
> 
>     $ msmtp -d --read-envelope-from -C ~/.msmtprc [email protected] < mail.txt
>     ignoring system configuration file /etc/msmtprc: No such file or directory
>     loaded user configuration file /home/adam/.msmtprc
>     using account common from /home/adam/.msmtprc

[snipped]

>     reading recipients from the command line
>     msmtp: cannot locate host dummy: Name or service not known
>     msmtp: could not send mail (account common from /home/adam/.msmtprc)
> 
> This must be a bug, right?  For some reason it looks like it's
> defaulting to the first account in the list, rather than the one
> called 'default'.

Upon further investigation, it seems that if neither -P nor -a are
specified, the default account selected is the first one in the config
file.  This got me suspicious, so I started reading the manual page
more closely and found the following snippets:

        --read-envelope-from
            Read the envelope from address from the From header of the
            mail.

    [...]

    -f, --from=address
        Set  the  envelope-from  address.  It  is  only  used   when
        auto_from is off.
        If  no  account  was  chosen yet (with --account or --host),
        this option will choose the first account that has the given
        envelope-from  address  (set  with  the from command). If no
        such account is found, "default" is used.

    [...]

    The user can choose which account to use in one of three ways:

    [...]

        --from=address or --read-envelope-from
            Choose the first account from the system or user
            configuration file that has a matching envelope-from address
            as specified by a from command. This works only when neither
            --account nor --host is used.

    [...]

    The envelope_from=yes option lets Mutt use the -f option of
    msmtp. Therefore msmtp chooses the first account that matches the
    from address [email protected].

So I'm guessing that msmtp extracted the address from the From:
header, and then looks for the first account which has a 'from' value
matching that address.

However, this does not explain why the behaviour is different in
pretend mode; I strongly suspect that's a bug.

Additionally, I would suggest that in debug mode, the output should be
altered to include an explanation of the account selection process.

Cheers,
Adam

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
msmtp-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/msmtp-users

Reply via email to