Re: Update to mail() function help
| From: | Rasmus Lerdorf | Date: | Fri, 23 May 2003 23:24:21 +0000 |
| Subject: | Re: Update to mail() function help | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-1959@lists.php.net to get a copy of this message | ||
I am not saying that is a bad idea, just that in this case what he wants
to add is not just a static string, but the current server name. If we
could do variable expansion at runtime from ini directives then this would
fit perfectly.
-Rasmus
On Sat, 24 May 2003, Jani Taskinen wrote:
>
> Oh well, just thought about more general solution. :)
> Someone might want to add some other headers too.
>
> --Jani
>
>
> On Fri, 23 May 2003, Rasmus Lerdorf wrote:
>
> >That would require a different ini setting for each virtual server and
> >thus could be a lot more work than just hacking the code.
> >
> >On Sat, 24 May 2003, Jani Taskinen wrote:
> >
> >>
> >> Maybe a php.ini option would be best for this?
> >> Like mail.extra_headers or something alike..?
> >> ie. that would add the specified headers to every
> >> mail sent with mail().
> >>
> >> --Jani
> >>
> >>
> >> On Fri, 23 May 2003, Rasmus Lerdorf wrote:
> >>
> >> >To access $_SERVER['SERVER_NAME'] from C you would do:
> >> >
> >> >zend_hash_find(PG(http_globals)[TRACK_VARS_SERVER]->value.ht,
> >> >"SERVER_NAME", sizeof("SERVER_NAME"), (void **) &server_name)==FAILURE)
> >> >
> >> >But, if variables_order doesn't include "S" it isn't going to
> >> >be there.
> >> >You are probably better off getting it directly from the server instead of
> >> >from the PHP symbol table. You can call php_apache_getenv() directly, or
> >> >to be more correct and portable to other SAPI's you would call
> >> >sapi_module.getenv().
> >> >
> >> >-Rasmus
> >> >
> >> >
> >> >On Fri, 23 May 2003, Patrick Gibson wrote:
> >> >
> >> >> I'd like modify the PHP mail() function to add the
> >> >> $_SERVER['SERVER_NAME']
> >> >> into the header if it's available. It would be equivalent to adding a
> >> >> line
> >> >> into the headers argument from the PHP end that would be like:
> >> >>
> >> >> if ($_SERVER['SERVER_NAME'])
> >> >> {
> >> >> $headers .= '\nX-Originated-From: www.mywebsite.com';
> >> >> }
> >> >>
> >> >> I see exactly in ext/standard/mail.c where I need to add this, but my
> >> >> problem is I'm not sure how to gain access to the $_SERVER super global
> >> >> array from the C API.
> >> >>
> >> >> Can anyone point me in the right direction? I don't see anything in the
> >> >> API
> >> >> docs that explains this, nor can I think of any PHP function that does
> >> >> something like this for a reference (except phpinfo(), but the code is
> >> >> unclear to me).
> >> >>
> >> >> I run a hosting company, and if any of our customers abuses this function, I
> >> >> want to be able to know from which website the mail originated. When there
> >> >> are hundreds of virtual hosts, something like this would make it really
> >> >> helpful at times.
> >> >>
> >> >> Thanks so much,
> >> >>
> >> >> Patrick
> >> >>
> >> >>
> >> >>
> >> >
> >> >
> >> >
> >>
> >>
> >
> >
> >
>
>