php mail function from localhost wamp server

5 replies
I am using mail function of PHP to send email its working fine on the server but when I try to send mail from local server its showing me smtp error, how can I resolve it?
#function #localhost #mail #php #server #wamp
  • Profile picture of the author 1stranked
    There is a simple trick to get this to work though;

    1) Download (or use the attached file) sendmail.zip from sendmail

    2) Unzip this in a folder on your c: drive (preferably use a simple path, for example c:\wamp\sendmail -- long filenames could cause problems)

    3) Edit your PHP.INI file (note: WAMP users should access their php.ini file from the WAMP menu). Go to the [mail function] section and modify it as such:

    [mail function]
    ; For Win32 only.
    ;SMTP =

    ; For Win32 only.
    ;sendmail_from =

    ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
    sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"

    ; Force the addition of the specified parameters to be passed as extra parameters
    ; to the sendmail binary. These parameters will always replace the value of
    ; the 5th parameter to mail(), even in safe mode.
    ;mail.force_extra_paramaters =

    .. and save the changes.

    4) Open the sendmail.ini and modify the settings to:

    [sendmail]

    ; you must change mail.mydomain.com to your smtp server,
    ; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup)
    ; emails delivered via IIS's pickup directory cause sendmail to
    ; run quicker, but you won't get error messages back to the calling
    ; application.

    smtp_server=mail.yourdomain.com

    ; smtp port (normally 25)

    smtp_port=25

    ; the default domain for this server will be read from the registry
    ; this will be appended to email addresses when one isn't provided
    ; if you want to override the value in the registry, uncomment and modify

    default_domain=yourdomain.com

    ; log smtp errors to error.log (defaults to same directory as sendmail.exe)
    ; uncomment to enable logging
    ; error_logfile=sendmail_error.log

    ; create debug log as debug.log (defaults to same directory as sendmail.exe)
    ; uncomment to enable debugging
    ; debug_logfile=sendmail_debug.log

    ; if your smtp server requires authentication, modify the following two lines

    ;auth_username=
    ;auth_password=

    ; if your smtp server uses pop3 before smtp authentication, modify the
    ; following three lines

    pop3_server=mail.yourdomain.com
    pop3_username=you@yourdomain.com
    pop3_password=mysecretpassword

    ; to force the sender to always be the following email address, uncomment and
    ; populate with a valid email address. this will only affect the "MAIL FROM"
    ; command, it won't modify the "From: " header of the message content

    force_sender=you@yourdomain.com

    ; sendmail will use your hostname and your default_domain in the ehlo/helo
    ; smtp greeting. you can manually set the ehlo/helo name if required

    hostname=

    The optional error and debug logging is recommended when trying this the first time, so you have a clue what goes wrong in case it doesn't work.
    Force_sender is also optional, but recommended to avoid confusion on the server end.
    Obviously mail.yourdomain.com, you@yourdomain.com, and mysecretpassword should be the relevant info for your SMTP server.
    Now restart the WAMP services (mainly Apache so PHP re-reads it's config).

    Now you're good to go and use the PHP mail() statement as if you're a Unix user ...
    {{ DiscussionBoard.errors[8503016].message }}
  • Profile picture of the author BuddhaOfCode
    You can not resolve that unless u install an email server on your machine.
    You can also use a remote server SMTP. Try a library called PHPMailer or SwiftMailer.
    {{ DiscussionBoard.errors[8507268].message }}
  • Profile picture of the author seasoned
    Actually, to use SMTP, you NEED an SMTP server you can access from THAT machine! Of course, you can not install an SMTP server unless it has access to the sites you want to send email to.

    That last sentence is IMPORTANT! If you want to send EMAIL to others on your LOCAL net, NO PROBLEM! If you want to send it through the internet, someone ELSE, that has access to email on the internet(usually your ISP) must give that computer, and/or your account, access.

    Steve
    {{ DiscussionBoard.errors[8507616].message }}
  • Profile picture of the author canniffch
    Another simple solution is setup smtp server in wamp server and configure it , you will be able to send email from local machine. SMTP is not configure directly with wamp server so you have to configure it manually
    {{ DiscussionBoard.errors[8518189].message }}
    • Profile picture of the author marketwiz
      Originally Posted by canniffch View Post

      Another simple solution is setup smtp server in wamp server and configure it , you will be able to send email from local machine. SMTP is not configure directly with wamp server so you have to configure it manually
      Do you have any tutorial or link from where i can get the info about how to set smtp server?
      {{ DiscussionBoard.errors[8524692].message }}

Trending Topics