MAMP Pro: Difference between revisions

From HaFrWiki42
Jump to navigation Jump to search
Line 63: Line 63:
Dec 12 09:11:28 Tonne postfix/qmgr[31997]: EF76490ECED: removed
Dec 12 09:11:28 Tonne postfix/qmgr[31997]: EF76490ECED: removed
</syntaxhighlight>
</syntaxhighlight>
The problem with the above is that the from field is not field correctly.
The PHP-mail command has the following signature and parameters:
* boolean mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
Parameters:
* '''$to''' Receiver, or receivers of the mail. <br>The formatting of this string must comply with » RFC 2822. Some examples are:
** user@example.com
** user@example.com, anotheruser@example.com
** User <user@example.com>
** User <user@example.com>, Another User <anotheruser@example.com>
* '''$subject''' Subject of the email to be sent. (Subject must satisfy » RFC 2047).
* '''$message''' Message to be sent. <br>Each line should be separated with a CRLF (\r\n). Lines should not be larger than 70 characters.
* '''$additional_headers''' (optional) String to be inserted at the end of the email header.
** This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (\r\n). If outside data are used to compose this header, the data should be sanitized so that no unwanted headers could be injected.
*** When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.
*** Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. The From header sets also Return-Path under Windows.
Note:
<br>If messages are not received, try using a LF (\n) only. Some Unix mail transfer agents (most notably » qmail) replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with » RFC 2822.
additional_parameters (optional)
<br>The '''$additional_parameters''' parameter can be used to pass additional flags as command line options to the program configured to be used when sending mail, as defined by the sendmail_path configuration setting. For example, this can be used to set the envelope sender address (-fxxx@yyy.zz).
The mail '''from''' has to be set twice to be absolute sure it will work correctly:
* In the '''$additional_header'''. Please note the specific formatting of this field.
* In the '''$additional_parameters'''. Please not the format: {{FormFCT|9|blue|-ffrom@xxx.nl}} without as space between -f and the email address (i.e. -fharm@harmfrielink.nl).


== See also ==
== See also ==

Revision as of 12:00, 7 September 2016

Mail

If you try to send a mail with MAMP Pro you will notice that this is not working out-of-the-box. MAMP Pro uses postfix as you can find on the last tab of the MAMP Pro app.

  • Just fill in 'gmail.com' at the Domain of outgoing mail and restart the server.
  • Now open the mail log file which is located in the /var/log directory and you will see:

<syntaxhighlight lang="bash" line> May 28 16:09:39 Harms-MBP-3.fritz.box postfix/master[78220]: fatal: bind fe80::1 port 25: Can't assign requested address May 28 16:09:49 Harms-MBP-3.fritz.box postfix/master[78221]: fatal: bind fe80::1 port 25: Can't assign requested address </syntaxhighlight> The reason of these errors is located in the wrong binding to the ipv6 instead of the ipv4.

To change this:

  • Edit the file main.cf located in the /etc/postfix/main.cf in terminal.
  • Type
    $ sudo nano /etc/postfix/main.cf
  • Add the line
    inet_protocols = ipv4
  • Save the file in nano.
  • Stop postfix:
     sudo launchctl stop org.postfix.master
  • Start postfix:
     sudo launchctl start org.postfix.master
  • Now look in the mail.log
    tail -f -n 65 /var/log/mail.log
  • Resulting in

<syntaxhighlight lang="bash" line> May 28 16:28:29 Harms-MBP-3.fritz.box postfix/master[78439]: fatal: bind fe80::1 port 25: Can't assign requested address May 28 16:28:40 Harms-MBP-3.fritz.box postfix/master[78440]: daemon started -- version 2.11.0, configuration /etc/postfix May 28 16:29:26 Harms-MBP-3.fritz.box postfix/master[78440]: terminating on signal 15 May 28 16:29:26 Harms-MBP-3.fritz.box postfix/master[78443]: daemon started -- version 2.11.0, configuration /etc/postfix </syntaxhighlight>

  • Fixed, the deamon has been started (see line2).

StartTLS

The mail.log is located in the /var/log.

  • After fixing the above issue the next problem is that the name of the host is taken as default name for the mail-send-account.
  • In the example below look for:
    • status=bounced
    • Must issue a STARTTLS command first.

<syntaxhighlight lang="bash" line> /Applications/MAMP/www/formula:HaFrMpro$ cat /var/log/mail.log Sep 6 10:00:19 Harms-MBP-2 postfix/pickup[15361]: 35FBB3FB6E3F: uid=501 from=<HaFrMpro> Sep 6 10:00:19 Harms-MBP-2 postfix/cleanup[15362]: 35FBB3FB6E3F: message-id=<20160906080019.35FBB3FB6E3F@mailer.gmail.com> Sep 6 10:00:19 Harms-MBP-2 postfix/qmgr[14705]: 35FBB3FB6E3F: from=<HaFrMpro@gmail.com>, size=902, nrcpt=1 (queue active) Sep 6 10:00:19 Harms-MBP-2 postfix/smtp[15364]: 35FBB3FB6E3F: to=<harm@harmfrielink.nl>, relay=smtp.gmail.com[74.125.136.109]:25, delay=0.55, delays=0.09/0.06/0.35/0.04, dsn=5.7.0, status=bounced (host smtp.gmail.com[74.125.136.109] said: 530 5.7.0 Must issue a STARTTLS command first. id1sm31874130wjb.21 - gsmtp (in reply to MAIL FROM command)) Sep 6 10:00:19 Harms-MBP-2 postfix/cleanup[15362]: BA5023FB6E42: message-id=<20160906080019.BA5023FB6E42@mailer.gmail.com> Sep 6 10:00:19 Harms-MBP-2 postfix/bounce[15365]: 35FBB3FB6E3F: sender non-delivery notification: BA5023FB6E42 Sep 6 10:00:19 Harms-MBP-2 postfix/qmgr[14705]: BA5023FB6E42: from=<>, size=2858, nrcpt=1 (queue active) Sep 6 10:00:19 Harms-MBP-2 postfix/qmgr[14705]: 35FBB3FB6E3F: removed Sep 6 10:00:20 Harms-MBP-2 postfix/smtp[15364]: BA5023FB6E42: to=<HaFrMpro@gmail.com>, relay=smtp.gmail.com[74.125.136.108]:25, delay=0.31, delays=0/0/0.25/0.05, dsn=5.7.0, status=bounced (host smtp.gmail.com[74.125.136.108] said: 530 5.7.0 Must issue a STARTTLS command first. b128sm25177085wmb.21 - gsmtp (in reply to MAIL FROM command)) Sep 6 10:00:20 Harms-MBP-2 postfix/qmgr[14705]: BA5023FB6E42: removed </syntaxhighlight>

CYREN - Greylisted

<syntaxhighlight lang="bash"> Sep 6 11:01:51 Harms-MBP-2 postfix/smtp[17040]: 94CD13FB74AD: host mxcluster2.one.com[91.198.169.9] said: 450 4.7.1 <harm@harmfrielink.nl>: Recipient address rejected: 95.90.202.130 temporary greylisted by CYREN IP reputation (in reply to RCPT TO command) </syntaxhighlight>

Example successful send

<syntaxhighlight lang="bash" line> Dec 12 09:11:26 Tonne postfix/pickup[31994]: EF76490ECED: uid=502 from=<from.address@gmail.com> Dec 12 09:11:26 Tonne postfix/cleanup[31995]: EF76490ECED: message-id=<20141212081126.EF76490ECED@mailer.gmail.com> Dec 12 09:11:27 Tonne postfix/qmgr[31997]: EF76490ECED: from=<from.address@gmail.com>, size=391, nrcpt=1 (queue active) Dec 12 09:11:28 Tonne postfix/smtp[31998]: EF76490ECED: to=<to.address@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.136.27]:25, delay=2.2, delays=1.1/0.02/0.38/0.69, dsn=2.0.0, status=sent (250 2.0.0 OK 1418371832 k5si1095875wjf.30 - gsmtp) Dec 12 09:11:28 Tonne postfix/qmgr[31997]: EF76490ECED: removed </syntaxhighlight>

The problem with the above is that the from field is not field correctly. The PHP-mail command has the following signature and parameters:

  • boolean mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Parameters:

  • $to Receiver, or receivers of the mail.
    The formatting of this string must comply with » RFC 2822. Some examples are:
    • user@example.com
    • user@example.com, anotheruser@example.com
    • User <user@example.com>
    • User <user@example.com>, Another User <anotheruser@example.com>
  • $subject Subject of the email to be sent. (Subject must satisfy » RFC 2047).
  • $message Message to be sent.
    Each line should be separated with a CRLF (\r\n). Lines should not be larger than 70 characters.
  • $additional_headers (optional) String to be inserted at the end of the email header.
    • This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (\r\n). If outside data are used to compose this header, the data should be sanitized so that no unwanted headers could be injected.
      • When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.
      • Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. The From header sets also Return-Path under Windows.

Note:
If messages are not received, try using a LF (\n) only. Some Unix mail transfer agents (most notably » qmail) replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with » RFC 2822. additional_parameters (optional)
The $additional_parameters parameter can be used to pass additional flags as command line options to the program configured to be used when sending mail, as defined by the sendmail_path configuration setting. For example, this can be used to set the envelope sender address (-fxxx@yyy.zz).

The mail from has to be set twice to be absolute sure it will work correctly:

  • In the $additional_header. Please note the specific formatting of this field.
  • In the $additional_parameters. Please not the format: -ffrom@xxx.nl without as space between -f and the email address (i.e. -fharm@harmfrielink.nl).

See also

top

Reference

top