手册:$wgSMTP

This page is a translated version of the page Manual:$wgSMTP and the translation is 25% complete.
Other languages:
English • ‎Nederlands • ‎français • ‎magyar • ‎polski • ‎português • ‎português do Brasil • ‎தமிழ் • ‎中文 • ‎日本語
电子邮件设置: $wgSMTP
For using a direct (authenticated) SMTP server connection.
引进版本:1.2.0
移除版本:仍在使用
允许的值:参见下方
默认值:false

详情

要为通知、身份验证或Special:Emailuser 发送邮件,你需要使用第三方邮件提供商并允许 MediaWiki 使用SMTP发送邮件。 设置以阵列形式存储在$wgSMTP中。 Set to false (the default value) to use the built-in PHP mail() function, but do note that if you do so your emails will most likely end up in the user's spam folder.

Also configure $wgEmergencyContact and make sure $wgPasswordSender matches the sending email address.

$wgSMTP像这样配置:

$wgSMTP = [
    'host'     => 'mail.example.com', // could also be an IP address. Where the SMTP server is located
    'IDHost'   => 'example.com',      // Generally this will be the domain name of your website (aka mywiki.org)
    'port'     => 25,                 // Port to use when connecting to the SMTP server
    'auth'     => true,               // Should we use SMTP authentication (true or false)
    'username' => 'my_user_name',     // Username to use for SMTP authentication (if being used)
    'password' => 'my_password'       // Password to use for SMTP authentication (if being used)
];

IDHost is a MediaWiki-specific setting used to build the Message-ID email header (see RFC 2822, sec 3.6.4 for more information on a properly formatted Message-ID). If not provided, will default to $wgServer . For the remaining settings, see Mail::factory() for a more complete description. (Scroll down to the smtp parameter.)

Install dependencies for older versions of MediaWiki (version MediaWiki 1.31 and earlier)

示例

Outlook Exchange协议 服务器

$wgSMTP = [
    'host'     => 'outlook.corporatedomain.com',
    'IDHost'   => 'corporatationname.com',
    'port'     => 25,
    'auth'     => false,
    'username' => 'name@corporationname.com',
    'password' => 'pw1245'
];


谷歌GMail

Note that you'll need to use an "App password" instead of your usual Gmail password, as explained here.

$wgSMTP = [
    'host' => 'ssl://smtp.gmail.com',
    'IDHost' => 'gmail.com',
    'localhost' => 'myservername.org',
    'port' => 465,
    'username' => 'myemail@gmail.com',
    'password' => '16 digit special gmail app password',
    'auth' => true
];

After this you may get an authentication failure type error. You will need to sign into the gmail account you are using and verify that the person that just signed in is you. You only need to verify this one time. (gmail will send you an email and you just follow the instructions)

亚马逊SES

Amazon Web Services' Simple E-mail Service can be used for SMTP support. Note that if your AWS SES instance is configured in 'Sandbox' mode you should change your settings to configuration parameters $wgPasswordSender and $wgEmergencyContact to an email address that you have verified in the AWS SES console. If new users register and they are not in the verified list, they will not get the email and you will be limited to 200 emails per day!

$wgSMTP = [
    'host' => 'tls://email-smtp.us-east-1.amazonaws.com', // Provided by Amazon SES to you
    'IDHost' => 'email-smtp.us-east-1.amazonaws.com', // Provided by Amazon SES to you
    'port' => 465,
    'username' => 'ISJAKSJAETQKJSAS8RP3LSFA', // Provided by Amazon SES to you
    'password' => '13HJASHjhjhjHAkjhkhA/hUfJHSIFAjjAskJADOIW2',  // Provided by Amazon SES to you
    'auth' => true
];

故障排除

Error sending mail: Unknown error in PHP's mail() function MediaWiki

Be sure that $wgEmergencyContact and $wgPasswordSender are set correctly, and match your email address. Some hosts will reject to send an email with a sender that doesn't match the account that sends the email.

Be sure you have installed the packages required to send the mail.

$ sudo pear install mail
$ sudo pear install net_smtp

See also possible issues in 任务T32260.

If your server has SELinux enabled, be sure to configure it correctly to enable sending mails from the webserver.

Error sending mail: authentication failure SMTP: STARTTLS

PEAR 的 mail 程序在邮件服务器支持TLS[1]的时候会尽量使用TLS协议连接邮件服务器,即使你没有指定邮件服务器使用 ssl:// 协议。 但是如果服务器证书无效(证书[2]不被信任,证书过期,证书常用名[3]与服务器名或者IP不相符之类),程序会不工作,相应地你会得到以下错误提示:

authentication failure [SMTP: STARTTLS failed (code: 220, response: begin TLS negotiation)]

你必须修复证书问题,邮箱才会工作。

超时问题

If the incorrect port is used, email will timeout without returning an error, and the website will appear unresponsive to the user. Consult your email provider's manual or try the other common SMTP ports: 25, 465, and 587.

Timeout issues with AWS SES

By default, Amazon EC2 throttles traffic on SMTP port 25 for all instances. If you continue to receive timeout errors using SMTP port 25, you can request that the throttle be removed or you can change the port that is used for sending (for example, 587). For more information, see How do I troubleshoot SMTP connectivity or timeout issues with Amazon SES?


参见