You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无人值守升级发送邮件失败,mailx可正常发送求助

Fixing Unattended-Upgrades Email Failure When mailx Works

Hey there, I’ve dealt with this exact frustration before—when mailx sends emails fine via your .mailrc, but unattended-upgrades just won’t cooperate. Let’s break down the fixes step by step:

1. Check Unattended-Upgrades Core Configuration

First, make sure unattended-upgrades is even set up to send emails correctly. Open its main config file:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Look for these lines and verify they’re set properly:

Unattended-Upgrade::Mail "your-email@example.com";  # Double-check this address!
Unattended-Upgrade::MailReport "on-change";  # Or "always" if you want regular updates

Save and exit if you made changes.

2. Unattended-Upgrades Doesn’t Read Your User’s .mailrc

Here’s the key: unattended-upgrades runs as root, so it doesn’t pick up the .mailrc in your regular user directory. You have two options here:

  • Copy your .mailrc to root’s home:
    cp ~/.mailrc /root/.mailrc
    chmod 600 /root/.mailrc  # Critical for security—only root can read it
    
    Then test if root can send emails with mailx:
    sudo mailx -s "Root Mail Test" your-email@example.com <<< "This is a test from root"
    
    If this works, unattended-upgrades might just need a nudge to use mailx.

3. Force Unattended-Upgrades to Use mailx

By default, unattended-upgrades might use sendmail or another mail agent instead of mailx. Tell it to use mailx explicitly by adding this line to /etc/apt/apt.conf.d/50unattended-upgrades:

Unattended-Upgrade::MailCommand "/usr/bin/mailx -s 'Unattended Upgrade Report' %s";

The %s is a placeholder that gets replaced with your email address from the Unattended-Upgrade::Mail line.

4. Debug with a Dry Run

Trigger a test run to see exactly what’s going wrong:

sudo unattended-upgrade --dry-run --debug

Check the logs for email errors afterward:

cat /var/log/unattended-upgrades/unattended-upgrades.log

Look for lines like "Failed to send email" or SMTP connection issues—this will point you to whether it’s an auth problem, server connectivity, or something else.

5. Verify SMTP Server Access

Sometimes the issue is that your server’s IP is blocked by your email provider (e.g., Gmail, Outlook). Check your email provider’s spam folder first, then:

  • Ensure your .mailrc (root’s version) has correct SMTP auth details:
    set smtp=smtp://smtp.example.com:587
    set smtp-auth=login
    set smtp-auth-user=your-smtp-username@example.com
    set smtp-auth-password=your-smtp-password
    set ssl-verify=ignore  # Or "strict" if your provider supports it
    
  • If you’re using Gmail, you might need to enable app-specific passwords (if 2FA is on) or adjust account security settings to allow server-based sends.

内容的提问来源于stack exchange,提问作者user3371854

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:53:36