#endif
#include "ext/standard/php_string.h"
+#include "ext/date/php_date.h"
-/*
- extern int _daylight;
- extern long _timezone;
- */
/*enum
{
DO_CONNECT = WM_USER +1
};
*/
-static char *days[] =
-{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
-static char *months[] =
-{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
-
/* '*error_message' has to be passed around from php_mail() */
#define SMTP_ERROR_RESPONSE_SPEC "SMTP server response: %s"
/* Convinient way to handle error messages from the SMTP server.
char *php_mailer = "PHP 4 NetWare";
#endif /* NETWARE */
-char *get_header(char *h, char *headers);
-
/* Error messages */
static char *ErrorMessages[] =
{
//********************************************************************/
PHPAPI int TSendMail(char *host, int *error, char **error_message,
char *headers, char *Subject, char *mailTo, char *data,
- char *mailCc, char *mailBcc, char *mailRPath)
+ char *mailCc, char *mailBcc, char *mailRPath TSRMLS_DC)
{
int ret;
char *RPath = NULL;
char *headers_lc = NULL; /* headers_lc is only created if we've a header at all */
char *pos1 = NULL, *pos2 = NULL;
- TSRMLS_FETCH();
#ifndef NETWARE
WinsockStarted = FALSE;
MailHost, !INI_INT("smtp_port") ? 25 : INI_INT("smtp_port"));
return FAILURE;
} else {
- ret = SendText(RPath, Subject, mailTo, mailCc, mailBcc, data, headers, headers_lc, error_message);
+ ret = SendText(RPath, Subject, mailTo, mailCc, mailBcc, data, headers, headers_lc, error_message TSRMLS_CC);
TSMClose();
if (RPath) {
efree(RPath);
// Author/Date: jcar 20/9/96
// History:
//*******************************************************************/
-int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char *mailBcc, char *data,
- char *headers, char *headers_lc, char **error_message)
+static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char *mailBcc, char *data,
+ char *headers, char *headers_lc, char **error_message TSRMLS_DC)
{
int res;
char *p;
/* send message header */
if (Subject == NULL) {
- res = PostHeader(RPath, "No Subject", mailTo, stripped_header);
+ res = PostHeader(RPath, "No Subject", mailTo, stripped_header TSRMLS_CC);
} else {
- res = PostHeader(RPath, Subject, mailTo, stripped_header);
+ res = PostHeader(RPath, Subject, mailTo, stripped_header TSRMLS_CC);
}
if (stripped_header) {
efree(stripped_header);
return (SUCCESS);
}
-int addToHeader(char **header_buffer, const char *specifier, char *string) {
+static int addToHeader(char **header_buffer, const char *specifier, char *string)
+{
if (NULL == (*header_buffer = erealloc(*header_buffer, strlen(*header_buffer) + strlen(specifier) + strlen(string) + 1))) {
return 0;
}
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders)
+static int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders TSRMLS_DC)
{
-
/* Print message header according to RFC 822 */
/* Return-path, Received, Date, From, Subject, Sender, To, cc */
- time_t tNow = time(NULL);
- struct tm *tm = localtime(&tNow);
- int zoneh = abs(_timezone);
- int zonem, res;
+ int res;
char *header_buffer;
char *headers_lc = NULL;
size_t i;
efree(headers_lc);
return OUT_OF_MEMORY;
}
- zoneh /= (60 * 60);
- zonem = (abs(_timezone) / 60) - (zoneh * 60);
- if(!xheaders || !strstr(headers_lc, "date:")){
- sprintf(header_buffer, "Date: %s, %02d %s %04d %02d:%02d:%02d %s%02d%02d\r\n",
- days[tm->tm_wday],
- tm->tm_mday,
- months[tm->tm_mon],
- tm->tm_year + 1900,
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec,
- (_timezone <= 0) ? "+" : (_timezone > 0) ? "-" : "",
- zoneh,
- zonem);
+ if (!xheaders || !strstr(headers_lc, "date:")) {
+ time_t tNow = time(NULL);
+ char *dt = php_format_date("r", 1, tNow, 1 TSRMLS_CC);
+
+ sprintf(header_buffer, "Date: %s\r\n", dt);
+ efree(dt);
}
if (!headers_lc || !strstr(headers_lc, "from:")) {
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-int MailConnect()
+static int MailConnect()
{
int res;
}
-
-
-
-
/*********************************************************************
// Name: Post
// Input:
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-int Post(LPCSTR msg)
+static int Post(LPCSTR msg)
{
int len = strlen(msg);
int slen;
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-int Ack(char **server_response)
+static int Ack(char **server_response)
{
static char buf[MAIL_BUFFER_SIZE];
int rlen;
// Author/Date: jcar 20/9/96
// History:
//********************************************************************/
-unsigned long GetAddr(LPSTR szHost)
+static unsigned long GetAddr(LPSTR szHost)
{
LPHOSTENT lpstHost;
u_long lAddr = INADDR_ANY;
PHPAPI int TSendMail(char *smtpaddr, int *returnerror, char **error_message,
char *RPath, char *Subject, char *mailTo, char *data,
- char *mailCc, char *mailBcc, char *mailRPath);
+ char *mailCc, char *mailBcc, char *mailRPath TSRMLS_DC);
PHPAPI void TSMClose(void);
-int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char *mailBcc, char *data,
- char *headers, char *headers_lc, char **error_message);
+static int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char *mailBcc, char *data,
+ char *headers, char *headers_lc, char **error_message TSRMLS_DC);
PHPAPI char *GetSMErrorText(int index);
-int MailConnect();
-int PostHeader(char *, char *, char *, char *);
-int Post(LPCSTR msg);
-int Ack(char **server_response);
-unsigned long GetAddr(LPSTR szHost);
+static int MailConnect();
+static int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders TSRMLS_DC);
+static int Post(LPCSTR msg);
+static int Ack(char **server_response);
+static unsigned long GetAddr(LPSTR szHost);
#endif /* sendmail_h */