PHP mail()无法发送邮件后缀配置| Apache 2 | Ubuntu 16.04
首先,对不起,如果这是一个很长的帖子,我正在尝试收集所有信息(我记得),其他论坛上的人似乎发现重要.
其次,如果这篇文章的答案恰好是“明显的”,我很抱歉,但为了简单起见我绝对不知道我在做什么,这是我第一次尝试这样做. 我正在尝试发送带有PHP邮件的邮件(),但是每次我在家里都这样做就会失败,即使它在我的学校工作得很好(我在学校和家里使用PHP7,所以我猜它来自我家的服务器配置). 我已经尝试了很多教程要求更新这个文件和其他文件,其中没有一个似乎对结果产生任何积极的影响,所以这就是我到目前为止所做的: sudo apt-get install postfix 然后我在postfix配置期间选择了“internet site”和“localhost”. 我打开/etc/postfix/main.cf并更改了以下两个变量的值,因为一些教程和论坛答案建议: inet_interfaces = loopback-only inet_protocols = ipv4 如果有任何帮助,我会发布master.cf和main.cf. 我改变了/ etc / hosts并添加了以下行 127.0.0.1 localhost localhost.localdomain facorreg 这是完整的/ etc / hosts 127.0.0.1 localhost 127.0.1.1 facorreg 127.0.0.1 localhost localhost.localdomain facorreg # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 我将以下行添加到sendmail.mc(我将通过以下完整文件): DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA') 最后,我改变了php.ini sendmail_path = /usr/sbin/sendmail -t -i 当我尝试将邮件发送到雅虎地址时,这是/var/log/mail.log告诉我的内容: Nov 17 16:42:13 localhost postfix/pickup[6223]: C5925E20D41: uid=33 from=<www-data> Nov 17 16:42:13 localhost postfix/cleanup[8491]: C5925E20D41: message-id=<20171117154213.C5925E20D41@facorreg.home> Nov 17 16:42:13 localhost postfix/qmgr[6224]: C5925E20D41: from=<www-data@facorreg.home>,size=637,nrcpt=1 (queue active) Nov 17 16:42:14 localhost postfix/smtp[8493]: connect to mta6.am0.yahoodns.net[74.6.137.65]:25: No route to host Nov 17 16:42:14 localhost postfix/smtp[8493]: connect to mta5.am0.yahoodns.net[63.250.192.46]:25: No route to host Nov 17 16:42:14 localhost postfix/smtp[8493]: connect to mta5.am0.yahoodns.net[66.218.85.139]:25: No route to host Nov 17 16:42:14 localhost postfix/smtp[8493]: connect to mta7.am0.yahoodns.net[98.136.216.25]:25: No route to host Nov 17 16:42:14 localhost postfix/smtp[8493]: connect to mta7.am0.yahoodns.net[98.138.112.33]:25: No route to host Nov 17 16:42:14 localhost postfix/smtp[8493]: C5925E20D41: to=<facorreg@yahoo.com>,relay=none,delay=0.64,delays=0.25/0.09/0.29/0,dsn=4.4.1,status=deferred (connect to mta7.am0.yahoodns.net[98.138.112.33]:25: No route to host) 这就是它. 以下是一些补充信息,我不知道它们是否有用: main.cf: # See /usr/share/postfix/main.cf.dist for a commented,more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = facorreg.home alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = $myhostname,localhost,facorreg,localhost.localdomain,localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = loopback-only inet_protocols = ipv4 master.cf: # # Postfix master process configuration file. For details on the format # of the file,see the master(5) manual page (command: "man 5 master" or # on-line: http://www.postfix.org/master.5.html). # # Do not forget to execute "postfix reload" after editing this file. # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (no) (never) (100) # ========================================================================== smtp inet n - y - - smtpd #smtp inet n - y - 1 postscreen #smtpd pass - - y - - smtpd #dnsblog unix - - y - 0 dnsblog #tlsproxy unix - - y - 0 tlsproxy #submission inet n - y - - smtpd # -o syslog_name=postfix/submission # -o smtpd_tls_security_level=encrypt # -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING #smtps inet n - y - - smtpd # -o syslog_name=postfix/smtps # -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING #628 inet n - y - - qmqpd pickup unix n - y 60 1 pickup cleanup unix n - y - 0 cleanup qmgr unix n - n 300 1 qmgr #qmgr unix n - n 300 1 oqmgr tlsmgr unix - - y 1000? 1 tlsmgr rewrite unix - - y - - trivial-rewrite bounce unix - - y - 0 bounce defer unix - - y - 0 bounce trace unix - - y - 0 bounce verify unix - - y - 1 verify flush unix n - y 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - y - - smtp relay unix - - y - - smtp # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - y - - showq error unix - - y - - error retry unix - - y - - error discard unix - - y - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - y - - lmtp anvil unix - - y - 1 anvil scache unix - - y - 1 scache # # ==================================================================== # Interfaces to non-Postfix software. Be sure to examine the manual # pages of the non-Postfix software to find out what options it wants. # # Many of the following services use the Postfix pipe(8) delivery # agent. See the pipe(8) man page for information about ${recipient} # and other message envelope options. # ==================================================================== # # maildrop. See the Postfix MAILDROP_README file for details. # Also specify in main.cf: maildrop_destination_recipient_limit=1 # maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} # # ==================================================================== # # Recent Cyrus versions can use the existing "lmtp" master.cf entry. # # Specify in cyrus.conf: # lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4 # # Specify in main.cf one or more of the following: # mailbox_transport = lmtp:inet:localhost # virtual_transport = lmtp:inet:localhost # # ==================================================================== # # Cyrus 2.1.5 (Amos Gouaux) # Also specify in main.cf: cyrus_destination_recipient_limit=1 # #cyrus unix - n n - - pipe # user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} # # ==================================================================== # Old example of delivery via Cyrus. # #old-cyrus unix - n n - - pipe # flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user} # # ==================================================================== # # See the Postfix UUCP_README file for configuration details. # uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) # # Other external delivery methods. # ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} sendmail.mc divert(-1)dnl #----------------------------------------------------------------------------- # $Sendmail: debproto.mc,v 8.15.2 2015-12-10 18:02:49 cowboy Exp $ # # Copyright (c) 1998-2010 Richard Nelson. All Rights Reserved. # # cf/debian/sendmail.mc. Generated from sendmail.mc.in by configure. # # sendmail.mc prototype config file for building Sendmail 8.15.2 # # Note: the .in file supports 8.7.6 - 9.0.0,but the generated # file is customized to the version noted above. # # This file is used to configure Sendmail for use with Debian systems. # # If you modify this file,you will have to regenerate /etc/mail/sendmail.cf # by running this file through the m4 preprocessor via one of the following: # * make (or make -C /etc/mail) # * sendmailconfig # * m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf # The first two options are preferred as they will also update other files # that depend upon the contents of this file. # # The best documentation for this .mc file is: # /usr/share/doc/sendmail-doc/cf.README.gz # #----------------------------------------------------------------------------- divert(0)dnl # # Copyright (c) 1998-2005 Richard Nelson. All Rights Reserved. # # This file is used to configure Sendmail for use with Debian systems. # define(`_USE_ETC_MAIL_')dnl include(`/usr/share/sendmail/cf/m4/cf.m4')dnl VERSIONID(`$Id: sendmail.mc,v 8.15.2-3 2015-12-10 18:02:49 cowboy Exp $') OSTYPE(`debian')dnl DOMAIN(`debian-mta')dnl dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE undefine(`confHOST_STATUS_DIRECTORY')dnl #DAEMON_HOSTSTATS= dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE dnl # dnl # General defines dnl # dnl # SAFE_FILE_ENV: [undefined] If set,sendmail will do a chroot() dnl # into this directory before writing files. dnl # If *all* your user accounts are under /home then use that dnl # instead - it will prevent any writes outside of /home ! dnl # define(`confSAFE_FILE_ENV',`')dnl dnl # dnl # Daemon options - restrict to servicing LOCALHOST ONLY !!! dnl # Remove `,Addr=' clauses to receive from any interface dnl # If you want to support IPv6,switch the commented/uncommentd lines dnl # FEATURE(`no_default_msa')dnl dnl DAEMON_OPTIONS(`Family=inet6,Name=MTA-v6,Port=smtp,Addr=::1')dnl DAEMON_OPTIONS(`Family=inet,Name=MTA-v4,Addr=127.0.0.1')dnl dnl DAEMON_OPTIONS(`Family=inet6,Name=MSP-v6,Port=submission,M=Ea,Name=MSP-v4,Addr=127.0.0.1')dnl dnl # dnl # Be somewhat anal in what we allow define(`confPRIVACY_FLAGS',dnl `needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl dnl # dnl # Define connection throttling and window length define(`confCONNECTION_RATE_THROTTLE',`15')dnl define(`confCONNECTION_RATE_WINDOW_SIZE',`10m')dnl dnl # dnl # Features dnl # dnl # use /etc/mail/local-host-names FEATURE(`use_cw_file')dnl dnl # dnl # The access db is the basis for most of sendmail's checking FEATURE(`access_db',`skip')dnl dnl # dnl # The greet_pause feature stops some automail bots - but check the dnl # provided access db for details on excluding localhosts... FEATURE(`greet_pause',`1000')dnl 1 seconds dnl # dnl # Delay_checks allows sender<->recipient checking FEATURE(`delay_checks',`friend',`n')dnl dnl # dnl # If we get too many bad recipients,slow things down... define(`confBAD_RCPT_THROTTLE',`3')dnl dnl # dnl # Stop connections that overflow our concurrent and time connection rates FEATURE(`conncontrol',`nodelay',`terminate')dnl FEATURE(`ratecontrol',`terminate')dnl dnl # dnl # If you're on a dialup link,you should enable this - so sendmail dnl # will not bring up the link (it will queue mail for later) dnl define(`confCON_EXPENSIVE',`True')dnl dnl # dnl # Dialup/LAN connection overrides dnl # include(`/etc/mail/m4/dialup.m4')dnl include(`/etc/mail/m4/provider.m4')dnl dnl # dnl # Default Mailer setup MAILER_DEFINITIONS MAILER(`local')dnl MAILER(`smtp')dnl include(`/etc/mail/tls/starttls.m4')dnl DAEMON_OPTIONS(`Port=smtp,Name=MTA') 另外: ifconfig netstat -rn 收益: enp0s25 Link encap:Ethernet HWaddr 68:f7:28:9f:88:9a UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:20 Memory:e1300000-e1320000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:40037 errors:0 dropped:0 overruns:0 frame:0 TX packets:40037 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3357002 (3.3 MB) TX bytes:3357002 (3.3 MB) wlp4s0 Link encap:Ethernet HWaddr f4:06:69:69:fd:7f inet addr:192.168.1.37 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::f089:fdf:b8be:3fe4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:54313 errors:0 dropped:0 overruns:0 frame:0 TX packets:40329 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:52589300 (52.5 MB) TX bytes:6690660 (6.6 MB) Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlp4s0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp4s0 和 telnet mta6.am0.yahoodns.net 25 回报 Trying 63.250.192.46... Trying 98.138.112.35... Trying 98.136.216.26... Trying 74.6.137.65... Trying 63.250.192.45... Trying 66.218.85.139... Trying 66.218.85.52... Trying 74.6.137.63... telnet: Unable to connect to remote host: No route to host 最后(从我尝试发送邮件到谷歌帐户时) telnet alt4.gmail-smtp-in.l.google.com 25 收益: Trying 74.125.28.26... Trying 2607:f8b0:400e:c04::1a... telnet: Unable to connect to remote host: Network is unreachable 在此先感谢您的帮助. 解决方法
虽然我可能通过尝试解决我的问题搞砸了一些设置,但是除了我所在的地方之外,php邮件恰好在任何其他工作环境中正常工作.通过一些研究,我发现有些人遇到了我曾经(并且仍然有)的相同问题,他们被告知这些问题可能来自互联网提供商(Orange fr).
我不知道它是否有意义,但就我而言,经验证据似乎指明了这一点. 我现在将这个问题作为回答. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |